{ "info": { "author": "Ian Maurer", "author_email": "ian@genomoncology.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "

specd

\n\nCommand-line interface (CLI) for making Swagger 2.0 projects easier to maintain\nby breaking the paths and definitions out into discrete folders and files in OpenAPI Specification 2.0 format\n\n

Installing

\n\nInstall and update using pip\n```bash\n$ pip install specd --upgrade\n```\n

specd Components

\n\n- Structure\n ---\n\t```bash\n\t.\n\t\u251c\u2500\u2500 definitions\n\t\u2502 \u251c\u2500\u2500 Foo.yaml\n\t\u2502 \u2514\u2500\u2500 Bar.yaml\n\t\u2514\u2500\u2500 paths\n \t\u251c\u2500\u2500 foo\n \t\u2502\u00a0\u00a0 \u2514\u2500\u2500 {fooId}\n \t\u2502\t\u251c\u2500\u2500 get.yaml\n \t\u2502\t\u2514\u2500\u2500 post.yaml\n\t\t\u251c\u2500\u2500 etc ...\n \t\u2514\u2500\u2500 etc ...\n\t```\n\t
Paths
\n\tThe paths and definitions of the specification file get broken out into\n\tseparate directories. The `paths` directory contains OpenAPI specs for every method that was defined in the original \t\tspecification file. In this example, the swagger definition for the API's `GET` method that would be found at example \t\tURL `hostname.io/foo/{fooId}/`, lives in `paths/foo/{fooId}/get.yaml`\n\t
Definitions
\n\tThe definitions of the specd are used as models to populate response fields, request body fields, and really anything \t\telse in the Swagger UI that requires a model of an object\n\n- yaml and json Spec Files\n ---\n All specification files are in the OpenAPI Specification 2.0 format. Below are examples of a `path`, `definition`, `.yaml` specification files that correspond with the example directory structure above.\n\n \t__`get.yaml` - path__\n \t```yaml\n \tdescription: Returns a single pet\n \toperationId: get_foo_by_fooId\n produces:\n\t - application/json\n \tparameters:\n - description: ID of pet to return\n format: int32\n in: path\n name: fooId\n required: true\n type: integer\n responses:\n '200':\n description: successful operation\n schema:\n $ref: '#/definitions/Foo' #Reference to the Foo model in definitions that is returned on response\n '400':\n description: Invalid bar supplied\n '404':\n description: foo object not found\n tags:\n\t - foo\n \t```\n\n \t__`Foo.yaml` - definition__\n \t```yaml\n \tproperties:\n \t bar:\n $ref: \"#/definitions/Bar\"\n fooId:\n format: int32\n type: integer\n data_entries:\n items:\n type: string\n type: array\n name:\n type: string\n \ttitle: Foo\n \ttype: object\n \t```\n

Core Features

\n\n- Converting a Specification File to a specd: `convert`\n ---\n `convert` takes a swagger specification file as input and an output\n directory as arguments, and creates a specd directory with the following \n\n
Command Options
\n\n | Command Options | Description | Default | Values | \n |-------------------------|-----------------------------------------------------|---------|------------------|\n | `-f, --format` | specify the format of the files in the output specd | `yaml` | `json` or `yaml` |\n\n
Example
\n\n To get the specification file that defines the Swagger Petstore UI at , perform a wget to download the specification.json file, and then perform a convert on it\n ```bash\n $ wget \"http://petstore.swagger.io/v2/swagger.json\" \n $ specd convert ./swagger.json ~/petstore/\n ```\n By specifying the output directory to be `~/petstore/`, specd will automatically create this directory if it does not already exist, and create a `specs` directory within it that contains a `specd.yaml` file, a `paths` directory, and a `definitions` directory.\n ```bash\n .\n \u251c\u2500\u2500 petstore\n \u2502 \u2514\u2500\u2500 specs\n \u2502 \u251c\u2500\u2500 definitions [not opening dir to save space]\n \u2502 \u2502 \u251c\u2500\u2500 ApiResponse.yaml\n \u2502 \u2502 \u251c\u2500\u2500 Category.yaml\n \u2502 \u2502 \u251c\u2500\u2500 Order.yaml\n \u2502 \u2502 \u251c\u2500\u2500 Pet.yaml\n \u2502 \u2502 \u251c\u2500\u2500 Tag.yaml \n \u2502 \u2502 \u2514\u2500\u2500 User.yaml\n \u2502 \u251c\u2500\u2500 paths\n \u2502 \u2502 \u251c\u2500\u2500 pet\n \u2502 \u2502 \u2502 \u2514\u2500\u2500 ... [omitting subdirs to save space]\n \u2502 \u2502 \u251c\u2500\u2500 store\n \u2502 \u2502 \u2502 \u2514\u2500\u2500 ... [omitting subdirs to save space]\n \u2502 \u2502 \u2514\u2500\u2500 user\n \u2502 \u2502 \u2514\u2500\u2500 ... [omitting subdirs to save space]\n \u2502 \u2514\u2500\u2500 specd.yaml\n \u2514\u2500\u2500 swagger.json\n ```\n\n\n- Generating a Specification File: `generate`\n ---\n `generate` is the inverse of the `convert` command. It takes a specd directory\n and an output file as arguments, and generates a swagger specification file\n from the path and definition files of the specd directory\n\n
Command Options
\n\n | Command Options | Description | Default | Values | \n |:-------------|:---------------------------------------------------------------------------------------------------|:--------|:------------------|\n | `-c, --case` | specify if operation names in specification file
should be converted to `snake_case` or `camelCase` | `snake` | `snake` or `camel`|\n\n
Example
\n\n Continuing off of the example from the `convert` command, we can create a new specification file for the Swagger Petstore API in yaml format based off of our specd directory\n ```bash\n $ specd generate ~/petstore/specs ~/new_generated_spec.yaml\n $ cd ~\n $ ls\n petstore/\tswagger.json\tnew_generated_spec.yaml\n ```\n\n- Running Swagger: `swagger`\n ---\n `swagger` starts a flask app for Swagger UI, allowing you to view and test your API. This command must be run out of your specd directory in order to function properly. \n\n
Command Options
\n\n | Command Options | Description | Default | Values/Type | \n |:------------------ |:------------------------------------------------------------------------------|:--------|:------------------------------|\n | `-h,`
`--host` | specify the host name of the server you
wish to hit with your swagger app.
If `None` is given, then specd retrieves a
hostname from the `specd.yaml` file within the specd directory| `None` | Any `str` |\n | `-n,`
`--name` | specify name of API | `None` | Any `str` |\n | `-t, --target` | specify the target API endpoints that you wish to be displayed | `None` | Comma separated list of `str` |\n\n\t
Example
\n\n ```bash\n $ cd ~/petstore/specs\n $ specd swagger --name=\"swagger_petstore\"\n * Serving Flask app \"specd.app\" (lazy loading)\n \t * Environment: swagger\n \t * Debug mode: off\n \t * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)\n\n\t```\n By simply doing a `CTRL+click` on the URL you receive from the command line, you can access and test your swagger specd.\n

Additional Utility Commands

\n\n- Comparing Specifications: `diff`\n ---\n `diff` takes two swagger specification files as arguments, and displays path and \n definition differences between the two\n
Example
\n\n ```bash\n $ specd diff ~/swagger.json ~/new_generated_spec.yaml\n ```\n\n-\tList Definitions and Paths: `ls`\n ---\n `ls` can be run inside of a specd directory in order to display all definitions and paths for that spec\n\n
Example
\n\n ```bash\n $ cd ~/petstore/specs\n $ specd ls\n\n \tDefinitions:\n\n\t\t\t ApiResponse\n\t\t\t Category\n\t\t\t Order\n\t\t\t Pet\n\t\t\t Tag\n\t\t\t User\n\n\t\t Paths:\n\n\t\t \t/pet/findByStatus: get\n\t\t \t/pet/findByTags: get\n\t\t \t/pet/{petId}/uploadImage: post\n\t\t \t/pet/{petId}: delete, get, post\n\t\t \t/pet: post, put\n\t\t \t/store/inventory: get\n\t\t \t/store/order/{orderId}: delete, get\n\t\t \t/store/order: post\n\t\t \t/user/createWithArray: post\n\t\t \t/user/createWithList: post\n\t\t \t/user/login: get\n\t\t \t/user/logout: get\n\t\t \t/user/{username}: delete, get, put\n\t\t \t/user: post\n\t ```\n\n- \tLinting Path and Definition Files: `lint`\n \t ---\n \t When a specification swagger file is first broken out into *definition* and *paths* directories using `convert`, the file may have contained fields and types that are not registered with bravado. Although this does not directly affect the API spec's ability to function, logging can become very cluttered, as whenever bravado encounters an unregistered field, it throws a warning message. \n\n \t Running the `lint` command takes a path to a specd directory as its only argument. When it is executed, `lint` will recursively traverse every single path and definition .json/.yaml file in the specd directory and remove any lines that will cause bravado to throw warnings.\n\n
Example
\n\n ```bash\n $ specd lint ~/petstore/specs\n ```\n\n-\tValidate Specd Directory: `validate`\n\t ---\n `validate` takes no arguments, and will verify if your current working directory is a valid specd directory \n ```bash\n $ cd ~/petstore/specs\n $ specd\n > Successfully validated.\n ```\n\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/genomoncology/specd", "keywords": "Swagger Open API Specification Bravado", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "specd", "package_url": "https://pypi.org/project/specd/", "platform": "", "project_url": "https://pypi.org/project/specd/", "project_urls": { "Homepage": "https://github.com/genomoncology/specd" }, "release_url": "https://pypi.org/project/specd/0.8.1/", "requires_dist": [ "click (>=6.7)", "flask-swagger-ui (>=3.6.0)", "swagger-spec-validator (>=2.1.0)", "PyYAML (>=3.12)", "dictdiffer (>=0.7.1)", "related (>=0.6.3)", "inflect (>=0.3.1)", "aiobravado (==0.9.3)", "bravado (==10.0.0)", "bravado-core (==5.0.4)", "bravado-asyncio (==1.0.0)", "stringcase (>=1.2.0)", "jsonschema[format]" ], "requires_python": "", "summary": "specd", "version": "0.8.1" }, "last_serial": 5022568, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ed7b8d993fa2dde98f9821d2e29faede", "sha256": "854a99f6a27e335165b74f96114b4cf3282002d0cb83eaac967cfaca0f6477fa" }, "downloads": -1, "filename": "specd-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed7b8d993fa2dde98f9821d2e29faede", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6216, "upload_time": "2018-05-04T17:37:47", "url": "https://files.pythonhosted.org/packages/56/9f/d75ebe57bf164e6e7cbe55ea4ae09a0c9414bded9caa50e5f7c254fd281d/specd-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9509f4576b916a5af65a25dc92be5423", "sha256": "5ef82a6baa5bce27c694e4ddb72a05ed6fd076b9c0fea9aaf46d62514d07e432" }, "downloads": -1, "filename": "specd-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9509f4576b916a5af65a25dc92be5423", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15280, "upload_time": "2018-05-04T17:37:48", "url": "https://files.pythonhosted.org/packages/b4/14/60352920ec3f0cb627711f879e22685549c856313957ba8be9f0d2969eff/specd-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "191252ef6ad84302e2b89446f6ead563", "sha256": "94a65732b17031a351217cdd38c676e947e48afb86850ac1292aab48138e728f" }, "downloads": -1, "filename": "specd-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "191252ef6ad84302e2b89446f6ead563", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6261, "upload_time": "2018-05-04T17:54:07", "url": "https://files.pythonhosted.org/packages/fb/83/d2a1558c9c508ca8711954a429e6a59adacba02c7fa450eb0cd4f53e0e84/specd-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d83b82b7d00225d4ac6e63713ace186a", "sha256": "497f8020ad772cce423419b8a6a9113dda1d5cf98be94717cd07e3951eef6d46" }, "downloads": -1, "filename": "specd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d83b82b7d00225d4ac6e63713ace186a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15324, "upload_time": "2018-05-04T17:54:08", "url": "https://files.pythonhosted.org/packages/ed/ab/e8fee8addb0bfbd2d6270f68d18bc9137ab4a6f561a92eba09c19e268fa8/specd-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "7fdb877516df40b3e9df4bc9eb9355f4", "sha256": "6e2f4312b53be8b30036b9d377afb56b4f815bd946b7654a2bd7fe21a3722cca" }, "downloads": -1, "filename": "specd-0.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7fdb877516df40b3e9df4bc9eb9355f4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13901, "upload_time": "2018-05-17T20:07:48", "url": "https://files.pythonhosted.org/packages/cc/91/f36dafdabba0e661060c06f2a9f32357f7e81870a0a6a275f77d0eefe194/specd-0.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b81570c52fe2a55fbabbf69b6f57dc5", "sha256": "98820d68718bcf7e6379cdcc7ad56eaefb9b2ccdb9fcbc502b44c59c73a3ccfe" }, "downloads": -1, "filename": "specd-0.1.10.tar.gz", "has_sig": false, "md5_digest": "5b81570c52fe2a55fbabbf69b6f57dc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27441, "upload_time": "2018-05-17T20:07:48", "url": "https://files.pythonhosted.org/packages/c4/a8/7be59bd81fef1e82cc3cce263c1da9cb5fee918b7264105209e3a1cdadb8/specd-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "c807d1a95f465b8a0fcb042d685d3a16", "sha256": "fd68bc34fba501c99c323e2c5ce29dc0e83f6cace401133b13c10d42a2eadf61" }, "downloads": -1, "filename": "specd-0.1.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c807d1a95f465b8a0fcb042d685d3a16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14541, "upload_time": "2018-06-13T19:04:07", "url": "https://files.pythonhosted.org/packages/11/61/01be409fe1d43ac161930f9a05c696a366df81f863ea5a8d78c2fab5bcfd/specd-0.1.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "762482732cc5c23943d085c616c7b199", "sha256": "956a775aded7d849da9615199b43b47fa7cadfd40a7a7561fd997ba730f9774e" }, "downloads": -1, "filename": "specd-0.1.11.tar.gz", "has_sig": false, "md5_digest": "762482732cc5c23943d085c616c7b199", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28574, "upload_time": "2018-06-13T19:04:08", "url": "https://files.pythonhosted.org/packages/6b/13/bc2dafc03374522ab665ba2e26e9637106b32c7d9418692a839061790831/specd-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "8db9a9e948f7cbfe91f184e5e5c33da5", "sha256": "dede187d5b64cd4692cc2cd5c050268d9506127939d4e8033a78207b9a0116d9" }, "downloads": -1, "filename": "specd-0.1.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8db9a9e948f7cbfe91f184e5e5c33da5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14555, "upload_time": "2018-06-13T19:42:10", "url": "https://files.pythonhosted.org/packages/dd/77/4655e8d6c90fd005ce94b632d4d15d9d9e8c0c778a669e4629c90a8f5d9f/specd-0.1.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0187601e096c13f3ec20a62d10939008", "sha256": "4162508e82b224d2bb11cd2e219f18e261b29613e678bd7c68c2393cb06ed607" }, "downloads": -1, "filename": "specd-0.1.12.tar.gz", "has_sig": false, "md5_digest": "0187601e096c13f3ec20a62d10939008", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28685, "upload_time": "2018-06-13T19:42:11", "url": "https://files.pythonhosted.org/packages/02/52/289ca3e7dadc5a9fca95ef351688bc2f8e05fe0031ed11dbccfcc5bcc67a/specd-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "5ca7b89e8731551b0334ea271cd709de", "sha256": "6a2874b20989bc3936f2e85435351962d99770a1002a830d9d4ada14f1ea8486" }, "downloads": -1, "filename": "specd-0.1.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ca7b89e8731551b0334ea271cd709de", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14595, "upload_time": "2018-06-13T20:29:54", "url": "https://files.pythonhosted.org/packages/ad/19/442fa40ddd292b9b90f6c750a568b733eab70f2a8d02867ced00599bcc47/specd-0.1.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9a926bfba8b0aa3e37511118ad2070b", "sha256": "a68a882e2d52d028372277a14e062e676f86bf420160e666c0984f72d53e75e7" }, "downloads": -1, "filename": "specd-0.1.13.tar.gz", "has_sig": false, "md5_digest": "d9a926bfba8b0aa3e37511118ad2070b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28724, "upload_time": "2018-06-13T20:29:55", "url": "https://files.pythonhosted.org/packages/1a/47/c8571bcd58115f042d92f3e20ff949a1ff1f793d429eb6cbc237171c566b/specd-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "98f230a90221c9f04541fbb837e60a97", "sha256": "7567baee55681e7ec58fb9cac9e0f67f4165d3d9ae37b87849730425965c82dd" }, "downloads": -1, "filename": "specd-0.1.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "98f230a90221c9f04541fbb837e60a97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14613, "upload_time": "2018-06-18T13:13:45", "url": "https://files.pythonhosted.org/packages/f3/b0/bb820623bc83e24b85a702b1c21765781dc4e1f3c93fe35029b35c98770a/specd-0.1.14-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "504f56c832cf07d9bd73a29f64583499", "sha256": "59b483d6df3f891d11f5977f9feee94c9cacc74938a3762fa5f086cee5ffa8e1" }, "downloads": -1, "filename": "specd-0.1.14.tar.gz", "has_sig": false, "md5_digest": "504f56c832cf07d9bd73a29f64583499", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28762, "upload_time": "2018-06-18T13:13:46", "url": "https://files.pythonhosted.org/packages/84/1c/20d3bf7e0de43abc5ff759baf2b825199f683e5a13579fc4c319bead5c18/specd-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "6b443968ccad2ba22f8c3f07605062df", "sha256": "bfcd33478ba45d1ccf652914a6bd0b40ad05e513f3e5ea101c4879c211917156" }, "downloads": -1, "filename": "specd-0.1.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6b443968ccad2ba22f8c3f07605062df", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14711, "upload_time": "2018-06-22T17:37:45", "url": "https://files.pythonhosted.org/packages/a8/ac/6199537c24054a9d77418cfbd890b5ddbb6e4d3429f07f10eeaeda14477c/specd-0.1.15-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a32db2db757df38de10132eef6cd9788", "sha256": "c5ba30bb0cd8c4c7ba57768d764f390af2b4f5f552fdb591844449b35bc73c85" }, "downloads": -1, "filename": "specd-0.1.15.tar.gz", "has_sig": false, "md5_digest": "a32db2db757df38de10132eef6cd9788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28984, "upload_time": "2018-06-22T17:37:46", "url": "https://files.pythonhosted.org/packages/65/67/f087807384b723e655c86d7e0994b6094c27716a59ef2f8c2fa450776822/specd-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "d7d97621d487bd9dff36bffc96ac6e1b", "sha256": "0ea056bd9242d729f5362ab3df0db0467841d9370e4af0f75915791f0a2319e0" }, "downloads": -1, "filename": "specd-0.1.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d7d97621d487bd9dff36bffc96ac6e1b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15519, "upload_time": "2018-06-27T13:53:22", "url": "https://files.pythonhosted.org/packages/b4/e7/8385231ec350fc45b179422e65c6ac6c07345cc8aebab785317fad775a3b/specd-0.1.16-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1f4f1e7f7cc4913eaeffbe652bbcaeb", "sha256": "2a39647abd8225affec3087ddf7864fa57fa5ead9dfd7dcd29dd8f7fa6d883fc" }, "downloads": -1, "filename": "specd-0.1.16.tar.gz", "has_sig": false, "md5_digest": "b1f4f1e7f7cc4913eaeffbe652bbcaeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29475, "upload_time": "2018-06-27T13:53:23", "url": "https://files.pythonhosted.org/packages/f2/3b/65754ae585c593d5e08759a59be053d8cd6ac5af7b495026fd642a0bfc94/specd-0.1.16.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e062c8f8d6068ea8f77dd4bbd43ee99e", "sha256": "4209febe5665180b4d0fbe0de609cd4d9ac7b426970f31d0d06008bf10b8170e" }, "downloads": -1, "filename": "specd-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e062c8f8d6068ea8f77dd4bbd43ee99e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8969, "upload_time": "2018-05-10T19:54:33", "url": "https://files.pythonhosted.org/packages/1f/9c/85d7d492d48de95bafe6431abff98d5edcb03dc1b20f5d5c5026b68c5278/specd-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c56d17be2d43f518325bbe1761842d7b", "sha256": "87368ff8ef08695d5058411f3526265a82ec4728ce0ac50cc24cb47a6ebad8e6" }, "downloads": -1, "filename": "specd-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c56d17be2d43f518325bbe1761842d7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19416, "upload_time": "2018-05-10T19:54:34", "url": "https://files.pythonhosted.org/packages/f7/06/cbc56ce29e1a268c350503ad507e7d41cc10435a2280c0cb4aa4f6e0c404/specd-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "25cadf61986788c701bf4cef126f9a88", "sha256": "7812d10ce7039050af88e7559eb1690caa2a3f4ccca60cf72ee075c2e0f04421" }, "downloads": -1, "filename": "specd-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "25cadf61986788c701bf4cef126f9a88", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8964, "upload_time": "2018-05-11T11:43:00", "url": "https://files.pythonhosted.org/packages/03/3f/9e4ffcd37cf5dd96483d8b156135e6fcf3985930b9237daa95d1001b1fad/specd-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7650a378624c38a0c809f7c1d6660fd", "sha256": "899eeb039cc25bbdc37c8cbf91cecea9f0bf3effe6b8a9e916549819281d2c47" }, "downloads": -1, "filename": "specd-0.1.4.tar.gz", "has_sig": false, "md5_digest": "e7650a378624c38a0c809f7c1d6660fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19410, "upload_time": "2018-05-11T11:43:01", "url": "https://files.pythonhosted.org/packages/91/49/c4a39a4bc7a58b40017be5e4c9ffbfbd47db1260ffdcb9fb065988a1a7af/specd-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "a0f6819f979cfc568eba1f80abe1bd77", "sha256": "07253773c75c8087470b47e55d8dbdfbe60002b64c51654754be60d3aebe200b" }, "downloads": -1, "filename": "specd-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0f6819f979cfc568eba1f80abe1bd77", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9062, "upload_time": "2018-05-13T15:37:29", "url": "https://files.pythonhosted.org/packages/62/b5/6b653eb7c67fcd55ed1f1d960b27af55c4362212fffdeff4806116484b9d/specd-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a036e2cfc3907b243cd191ca45d1271f", "sha256": "924f22e85178471d25b7c372c83b97d322d82bacd4f405540e0a4403a88736ec" }, "downloads": -1, "filename": "specd-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a036e2cfc3907b243cd191ca45d1271f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19585, "upload_time": "2018-05-13T15:37:30", "url": "https://files.pythonhosted.org/packages/61/bd/1923c2c06948b8cb655f368dd34899fe3f0a667c50dc3805532bfc55dc82/specd-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "5e7821003ab690f4684bd9cc264f3838", "sha256": "2322bb969e869baca23d2c02a670958b31f11c36743569aea25750c53fc37426" }, "downloads": -1, "filename": "specd-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e7821003ab690f4684bd9cc264f3838", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11870, "upload_time": "2018-05-15T16:39:52", "url": "https://files.pythonhosted.org/packages/62/12/26fa44527e162d519de4d53ace9579bd10992f15eaef15156bec201b7b82/specd-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4e84e28c38bc53b3e2db49b67b9cd5b", "sha256": "256dd95fd892386ceae115bedb49f6c36413054996d18ffc097523f56f5557d1" }, "downloads": -1, "filename": "specd-0.1.6.tar.gz", "has_sig": false, "md5_digest": "f4e84e28c38bc53b3e2db49b67b9cd5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24504, "upload_time": "2018-05-15T16:39:53", "url": "https://files.pythonhosted.org/packages/07/3f/eacc21e84cee51310d71cc04c26764ffe31eee335b4964f5d81a0fd81692/specd-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "0a85158069cbc98d85e7b8c2405e96a2", "sha256": "d7fab765af1059502939597b83a2fce02f1e743afb92d8cc441c81e7835c2ae5" }, "downloads": -1, "filename": "specd-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0a85158069cbc98d85e7b8c2405e96a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12112, "upload_time": "2018-05-15T18:29:46", "url": "https://files.pythonhosted.org/packages/10/b4/626a05b7324019f2178902a7e0ed45ee16c68383e9b01ccb7db336cb4e2e/specd-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d733f3bab4400bf289dcf1deee859d0", "sha256": "fad0ef24b0b7448fd54f25889cc45b2ebe1ac1dc0012a240347970c763f9817b" }, "downloads": -1, "filename": "specd-0.1.7.tar.gz", "has_sig": false, "md5_digest": "6d733f3bab4400bf289dcf1deee859d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24772, "upload_time": "2018-05-15T18:29:47", "url": "https://files.pythonhosted.org/packages/32/0b/3d34a0d4ed7b2fcfe3b0920a975793fc3248e12e7d71944ef60b6a36f65e/specd-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "ee5e414c29f699b820e039e5af0ce934", "sha256": "14918a0a9ac7729960810968fbf923ea6fff1b98090c59d3c981484da94c43d7" }, "downloads": -1, "filename": "specd-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee5e414c29f699b820e039e5af0ce934", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12089, "upload_time": "2018-05-15T20:46:35", "url": "https://files.pythonhosted.org/packages/56/6e/eed85c0731f431c012608df67724167d842023238b765d29305d1152053d/specd-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97435f21a5c719e5a91da921c24e2ea0", "sha256": "a7c2b663eb0d0a626472295c0b7e09144702b45f6e3f9389b3cc336705be5d90" }, "downloads": -1, "filename": "specd-0.1.8.tar.gz", "has_sig": false, "md5_digest": "97435f21a5c719e5a91da921c24e2ea0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24733, "upload_time": "2018-05-15T20:46:36", "url": "https://files.pythonhosted.org/packages/73/d8/f4098dd5318355072871e2f60b2031afa5d84b4141a4ae612dc0a503c1da/specd-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "ef83c9d58a1bc6f711e2d221dae1e78c", "sha256": "ef2861721317db7f77733d5e8986d7ae16fbaf709a1ac45c46dba3367dd14d6f" }, "downloads": -1, "filename": "specd-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ef83c9d58a1bc6f711e2d221dae1e78c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13741, "upload_time": "2018-05-16T15:02:50", "url": "https://files.pythonhosted.org/packages/c4/ec/82cb0974fbe0a21199cc00b7862790696b33c26a6137833d40cb69017e18/specd-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1b3f5cd19539407791431b7c6da8142", "sha256": "150d5ce7dc402c95dd391235e3fca720718957518f309666eeeda160ecaca7cc" }, "downloads": -1, "filename": "specd-0.1.9.tar.gz", "has_sig": false, "md5_digest": "b1b3f5cd19539407791431b7c6da8142", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27368, "upload_time": "2018-05-16T15:02:52", "url": "https://files.pythonhosted.org/packages/0e/18/91e1e37c0e5ee8ba42380d0bd7c81b65526077c74d5d3ff0c05c3535d4dd/specd-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a240fc3972c912f28e1130a88dbcd195", "sha256": "d7629617eb229fe75123bbba5275d2520115476dbdf557f1d3cd02a2a151bbd3" }, "downloads": -1, "filename": "specd-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a240fc3972c912f28e1130a88dbcd195", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15504, "upload_time": "2018-07-09T14:34:20", "url": "https://files.pythonhosted.org/packages/ad/dd/f1f8e3019d68194b3832e9db87899aeda5f8dfc714be3dc266cf2526b995/specd-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58fc35d138e553db19761034638e5003", "sha256": "af328e9e4b15fbf4efbe6f658c3e804c895a1e87a535765f4d98dd64ff65a45e" }, "downloads": -1, "filename": "specd-0.2.0.tar.gz", "has_sig": false, "md5_digest": "58fc35d138e553db19761034638e5003", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29485, "upload_time": "2018-07-09T14:34:21", "url": "https://files.pythonhosted.org/packages/55/00/614abc66aa3befe518c69edd62d853de331f3481cee03b33d74b088d372c/specd-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "fc1e3e1c3228ab67cd64834d685ef1cc", "sha256": "bee0a16418726f525b2b1685c9468d78e129026385aa0f481dbe12cd0b4c61f0" }, "downloads": -1, "filename": "specd-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fc1e3e1c3228ab67cd64834d685ef1cc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15504, "upload_time": "2018-07-09T21:07:24", "url": "https://files.pythonhosted.org/packages/5b/2f/5c27fe59c8a1cdaa3acf085a82d7a215e69df8269213c2ac8d6d173bd078/specd-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37cce28096e7165d8b86ab0cb1b59d96", "sha256": "a1db44f875eb1f21a94fb3d6a1acea5474abba54e713eb39c9d31abbbb2b11de" }, "downloads": -1, "filename": "specd-0.2.1.tar.gz", "has_sig": false, "md5_digest": "37cce28096e7165d8b86ab0cb1b59d96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28638, "upload_time": "2018-07-09T21:07:25", "url": "https://files.pythonhosted.org/packages/39/6a/ea6a8080f882bd6983c00dcb948f73840523cd47fa442d10bd4ff0200937/specd-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8fc61464247b5d7e38ce523a07cd9eee", "sha256": "58c0c32e7bc20b6bbcda4a49e374e94303b91ac42f896fcfb10f634d06314dc1" }, "downloads": -1, "filename": "specd-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8fc61464247b5d7e38ce523a07cd9eee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18578, "upload_time": "2018-08-26T10:37:41", "url": "https://files.pythonhosted.org/packages/6d/50/9d592a4a4ee6f607909d5223eb60e166d3ab6693743cc78d3db235f1f662/specd-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20723e9fc2346d3e24c0f2b73731ee7a", "sha256": "f2953547165bd34810654216a1902d32dce08f016eaf0939f9c0c51f65381260" }, "downloads": -1, "filename": "specd-0.2.2.tar.gz", "has_sig": false, "md5_digest": "20723e9fc2346d3e24c0f2b73731ee7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38401, "upload_time": "2018-08-26T10:37:42", "url": "https://files.pythonhosted.org/packages/9e/5a/869fddc507593ae2f4cb7448e45d597b7190c0bd365384cdcb71711f2937/specd-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "b4ea849a7b60d42e7439c85a8d84f9e1", "sha256": "c5e9174ebd1e865e24562e40e057ca32179386301d2a34a4ddc09c665d7f931f" }, "downloads": -1, "filename": "specd-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4ea849a7b60d42e7439c85a8d84f9e1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19488, "upload_time": "2018-08-26T10:52:34", "url": "https://files.pythonhosted.org/packages/b8/84/604657483996b8c119e7bc2d48aa526b48723a405d6808c815ba11f268c0/specd-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a4bffe1fb5882b8df9370df092cfe9f", "sha256": "9c967da0cf5043271db820bd9be876a4876ca6c26b78d9c07229363b313edc34" }, "downloads": -1, "filename": "specd-0.2.3.tar.gz", "has_sig": false, "md5_digest": "5a4bffe1fb5882b8df9370df092cfe9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38413, "upload_time": "2018-08-26T10:52:36", "url": "https://files.pythonhosted.org/packages/91/1e/0cd70295db1880e7fa525d7be70394a06c8efc3dbc7c6908a302ce956522/specd-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "d682e6c8387e95682e815d150ab36104", "sha256": "6002880f78e199d30267bf98974924f0937c9d5614564b063db3f09263e6dedc" }, "downloads": -1, "filename": "specd-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d682e6c8387e95682e815d150ab36104", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19487, "upload_time": "2018-09-09T10:37:39", "url": "https://files.pythonhosted.org/packages/8f/2d/63bcb93dc660ff8b851eff16b6c04f00105ffff1eab26aa494c84a2f0072/specd-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b38284cfc0e7ea5cd2575ef46c98cd51", "sha256": "a4b92e14b65aa1a6882dac4563737bdf931fe56d01c9a204d287a52af20fce01" }, "downloads": -1, "filename": "specd-0.2.4.tar.gz", "has_sig": false, "md5_digest": "b38284cfc0e7ea5cd2575ef46c98cd51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38418, "upload_time": "2018-09-09T10:37:40", "url": "https://files.pythonhosted.org/packages/0f/64/24ad8381b6d449fe93e19f5a5cb1007440fbd8b16f519e1253f306b15b47/specd-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "360246f544a32197b3d6594e0eb11b42", "sha256": "ade6709538b7e179cd5c58b04c2755814111c32111b982f4e3257d737aa53a18" }, "downloads": -1, "filename": "specd-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "360246f544a32197b3d6594e0eb11b42", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19506, "upload_time": "2018-09-09T11:29:32", "url": "https://files.pythonhosted.org/packages/2a/da/a303ee9f0e15f7fd7451afdd43698d4fd2d7bce7d33391fc3ad28952cb3b/specd-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3aa0191597eb2ca00a2eb6baf880965", "sha256": "cf76a1a90ca7001f62865d5596574e4aef25aa8ab948167992dc361908ec9700" }, "downloads": -1, "filename": "specd-0.2.5.tar.gz", "has_sig": false, "md5_digest": "f3aa0191597eb2ca00a2eb6baf880965", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38441, "upload_time": "2018-09-09T11:29:34", "url": "https://files.pythonhosted.org/packages/df/89/c96e11b7328c44fffd625195121e0c5fc973ecffa3508cab2037c14339c2/specd-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "44aa91977f053ee51e5ef6b54a06091d", "sha256": "958960fd59b1dd1441b724c833898b14b2889bd63d381c917883a62800292f6e" }, "downloads": -1, "filename": "specd-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44aa91977f053ee51e5ef6b54a06091d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19488, "upload_time": "2018-09-12T23:28:04", "url": "https://files.pythonhosted.org/packages/26/64/cb115f320ac1d4c1f3a8e10db9d5cbb28edd4916d17d64c99bdd08ff8ec0/specd-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "328edb013ba947f49af117c42e97751a", "sha256": "8cad0536a9f50782fd572fa9dc4bba314c8371711db3e43bb54f733fe734353b" }, "downloads": -1, "filename": "specd-0.2.6.tar.gz", "has_sig": false, "md5_digest": "328edb013ba947f49af117c42e97751a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38420, "upload_time": "2018-09-12T23:28:05", "url": "https://files.pythonhosted.org/packages/1e/7d/5e8988992a7dda3f637f7735463d32f9c27754b56ad8645a8b7f836bb56c/specd-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "eb8881de4e65583226a1a2d5f69a6da1", "sha256": "09e10121cc87dfae52804a8cde5875ddb293741a7aa99a3341b987b927803e1e" }, "downloads": -1, "filename": "specd-0.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb8881de4e65583226a1a2d5f69a6da1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19590, "upload_time": "2018-11-12T21:33:06", "url": "https://files.pythonhosted.org/packages/80/24/4f6ab7775b20d1459b5ea74083c6473159bfaa578cdc1c468609654d7b32/specd-0.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f8a4611d1d8dad280390a676a49f6e2", "sha256": "1c62d6bfd3e12c0055216e258d2ac55dd4628d2a23482bff565a7e8bcd176096" }, "downloads": -1, "filename": "specd-0.2.7.tar.gz", "has_sig": false, "md5_digest": "0f8a4611d1d8dad280390a676a49f6e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38520, "upload_time": "2018-11-12T21:33:08", "url": "https://files.pythonhosted.org/packages/06/fd/cd457f7870764595d80e88f169c19182f0d051cf7d98d821781db5e627bf/specd-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "e2f5a1f871707d414bdcaa7321d55993", "sha256": "d69bdf012072ede47ccadbf86813b51368e8bb15f4c591892587adad339babd0" }, "downloads": -1, "filename": "specd-0.2.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e2f5a1f871707d414bdcaa7321d55993", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19609, "upload_time": "2018-11-12T21:40:17", "url": "https://files.pythonhosted.org/packages/c3/b7/87327141a0d1fcce4d93f7a61a394742ff2a7bcb92e32bcf49ed32099e51/specd-0.2.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d574ba00bfeb5ad76a5117104304908", "sha256": "be44a5945ff4f2f66655158fd35ff6cf763ae53dc6b4b4f77071bb4628a5fc99" }, "downloads": -1, "filename": "specd-0.2.8.tar.gz", "has_sig": false, "md5_digest": "1d574ba00bfeb5ad76a5117104304908", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38532, "upload_time": "2018-11-12T21:40:18", "url": "https://files.pythonhosted.org/packages/f6/ea/2a4ac96c2824324bb388e05382977ee69f7f5c41637df7d30bc336c9eb23/specd-0.2.8.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "e18d31fedb63b3b78d8fc5cf123cbdaa", "sha256": "59745e4e37c4413a98c15b0462b43826da3960c83cef41d758994db37ce13710" }, "downloads": -1, "filename": "specd-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e18d31fedb63b3b78d8fc5cf123cbdaa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19576, "upload_time": "2018-11-14T13:46:59", "url": "https://files.pythonhosted.org/packages/96/38/654418d313706e997435fab06b56b45c91477e583f2ca0c9648b6a6ab6cf/specd-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a296c4d2ecfa7c4014af77deb781dd4c", "sha256": "0057f9dcaef16ed5d539f65e85851d9c9886042c10f8385a486619339f6a403d" }, "downloads": -1, "filename": "specd-0.8.0.tar.gz", "has_sig": false, "md5_digest": "a296c4d2ecfa7c4014af77deb781dd4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40004, "upload_time": "2018-11-14T13:47:01", "url": "https://files.pythonhosted.org/packages/79/3b/ee61e007df8afa782eb149c2366026e396dacd38fff456df930c1ee376c9/specd-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "7bc518621cc4210303b56b80d5714dc9", "sha256": "be063244cd1e46e2f1cc22c68b27c2dff1014fe1286fefc1d74cdd09c5f07079" }, "downloads": -1, "filename": "specd-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7bc518621cc4210303b56b80d5714dc9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19593, "upload_time": "2019-04-01T14:49:29", "url": "https://files.pythonhosted.org/packages/69/a8/3b969a056019f94128c2a67b157627f7c9ba9920cb56f0cfe61e5f686b02/specd-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d32ed40495186402d92d0dce88764336", "sha256": "82d2713f53c098521a12dd7cc5ae42cf34c618d1b120372f37ad42b8cc643c5c" }, "downloads": -1, "filename": "specd-0.8.1.tar.gz", "has_sig": false, "md5_digest": "d32ed40495186402d92d0dce88764336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40027, "upload_time": "2019-04-01T14:49:31", "url": "https://files.pythonhosted.org/packages/06/9d/e0ed7711afd028f167f0757ff983cb749f99ee904c9f1c17a8d32837bffe/specd-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7bc518621cc4210303b56b80d5714dc9", "sha256": "be063244cd1e46e2f1cc22c68b27c2dff1014fe1286fefc1d74cdd09c5f07079" }, "downloads": -1, "filename": "specd-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7bc518621cc4210303b56b80d5714dc9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19593, "upload_time": "2019-04-01T14:49:29", "url": "https://files.pythonhosted.org/packages/69/a8/3b969a056019f94128c2a67b157627f7c9ba9920cb56f0cfe61e5f686b02/specd-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d32ed40495186402d92d0dce88764336", "sha256": "82d2713f53c098521a12dd7cc5ae42cf34c618d1b120372f37ad42b8cc643c5c" }, "downloads": -1, "filename": "specd-0.8.1.tar.gz", "has_sig": false, "md5_digest": "d32ed40495186402d92d0dce88764336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40027, "upload_time": "2019-04-01T14:49:31", "url": "https://files.pythonhosted.org/packages/06/9d/e0ed7711afd028f167f0757ff983cb749f99ee904c9f1c17a8d32837bffe/specd-0.8.1.tar.gz" } ] }