{ "info": { "author": "Opus One Solutions", "author_email": "rnd@opusonesolutions.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Scientific/Engineering :: Physics", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "carsons\n=======\n\n[![latest release on pypi](https://badge.fury.io/py/carsons.svg)](https://badge.fury.io/py/carsons)\n[![versons of python supported by carsons](https://img.shields.io/pypi/pyversions/carsons.svg)](https://pypi.python.org/pypi/carsons)\n[![GitHub license](https://img.shields.io/github/license/opusonesolutions/carsons.svg)](https://github.com/opusonesolutions/carsons/blob/master/LICENSE.txt)\n[![build passing or failing](https://travis-ci.org/opusonesolutions/carsons.svg?branch=master)](https://travis-ci.org/opusonesolutions/carsons)\n[![test coverage](https://coveralls.io/repos/github/opusonesolutions/carsons/badge.svg?branch=master)](https://coveralls.io/github/opusonesolutions/carsons?branch=master)\n[![Maintainability](https://api.codeclimate.com/v1/badges/22cfed180fd6032fe29b/maintainability)](https://codeclimate.com/github/opusonesolutions/carsons/maintainability)\n\nThis is an implementation of Carson's Equations, a mathematical model\nfor deriving the equivalent impedance of an AC transmission or\ndistribution line.\n\nImplementation\n--------------\n\n`carsons` is developed using python 3.6 support for unicode characters\nlike \u03c0, \u0192, \u03c1, \u03bc, \u03c9 etc. This feature allows us to avoid translating the\nproblem into a more typical programming syntax, so the code is dense and\ncan easily be compared to published formulations of the problem.\n\nFor example, we implement the kron reduction, a matrix decomposition\nstep, using unicode notation to indicate the slightly different meaning\nof impedance values before and after a kron reduction:\n\n```python\ndef perform_kron_reduction(z_primitive):\n \u1e90pp, \u1e90pn = z_primitive[0:3, 0:3], z_primitive[0:3, 3:]\n \u1e90np, \u1e90nn = z_primitive[3:, 0:3], z_primitive[3:, 3:]\n Z_abc = \u1e90pp - \u1e90pn @ inv(\u1e90nn) @ \u1e90np\n return Z_abc\n```\n\nTake a look at the [source\ncode](https://github.com/opusonesolutions/carsons/blob/add-documentation/carsons/carsons.py)\nto see more cool unicode tricks!\n\nInstallation\n------------\n\n```bash\n~/$ pip install carsons\n```\n\nUsage\n-----\n\nCarsons model requires a line model object that maps each phase to\nproperties of the conductor for that phase.\n\n```python\nfrom carsons import CarsonsEquations, calculate_impedance\n\nclass Line:\n geometric_mean_radius: {\n 'A': geometric_mean_radius_A in meters\n ...\n }\n resistance: {\n 'A': per-length resistance of conductor A in ohms/meters\n ...\n }\n wire_positions: {\n 'A': (x, y) cross-sectional position of the conductor in meters\n ...\n }\n phases: {'A', ... }\n # map of phases 'A', 'B', 'C' and 'N<>' which are described in the\n # gmr, r and phase_positions attributes\n\nline_impedance = calculate_impedance(CarsonsEquations(Line()))\n```\n\nThe model supports any combination of ABC phasings (for example BC, BCN\netc...) including systems with multiple neutral cables; any phases that\nare not present in the model will have zeros in the columns and rows\ncorresponding to that phase.\n\nMultiple neutrals are supported, as long as they have unique labels\nstarting with `N` (e.g. `Neutral1`, `Neutral2`).\n\nIntermediate results such as primitive impedance matrix are also\navailable.\n\n```python\nz_primitive = CarsonsEquations(Line()).build_z_primitive()\n```\n\nFor examples of how to use the model, see the [overhead wire\ntests](https://github.com/opusonesolutions/carsons/blob/master/tests/test_overhead_line.py).\n\n`carsons` is tested against several cable configurations from the [IEEE\ntest feeders](http://sites.ieee.org/pes-testfeeders/resources/), as well as\nexamples from EPRI's [OpenDSS documentation](http://svn.code.sf.net/p/electricdss/code/trunk/Distrib/Doc/TechNote%20CableModelling.pdf).\n\n### Concentric Neutral Cable\n\n`carsons` also supports modelling of concentric neutral cables of any\nphasings. Its usage is very similar to the example above, only requiring\na few more parameters about the neutral conductors in the line model\nobject.\n\n```python\nfrom carsons import (ConcentricNeutralCarsonsEquations,\n calculate_impedance)\n\nclass Cable:\n resistance: {\n 'A': per-length resistance of conductor A in ohm/meters\n ...\n }\n geometric_mean_radius: {\n 'A': geometric mean radius of conductor A in meters\n ...\n }\n wire_positions: {\n 'A': (x, y) cross-sectional position of conductor A in meters\n ...\n }\n phases: {'A', 'NA', ... }\n neutral_strand_gmr: {\n 'NA': neutral strand gmr of phase A in meters\n ...\n }\n neutral_strand_resistance: {\n 'NA': neutral strand resistance of phase A in ohm/meters\n ...\n }\n neutral_strand_diameter: {\n 'NA': neutral strand diameter of phase A in meters\n ...\n }\n diameter_over_neutral: {\n 'NA': diameter over neutral of phase A in meters\n ...\n }\n neutral_strand_count: {\n 'NA': neutral strand count of phase A\n ...\n }\n\ncable_impedance = calculate_impedance(ConcentricNeutralCarsonsEquations(Cable()))\n```\n\nFor examples of how to use the model, see the [concentric cable\ntests](https://github.com/opusonesolutions/carsons/blob/master/tests/test_concentric_neutral_cable.py).\n\n### Multi-Conductor Cable\n\n`carsons` also supports modelling of phased duplex, triplex, quadruplex cables and triplex secondary.\nIt only requires a few more parameters to describe cable's geometry.\n\n```python\nfrom carsons import (MultiConductorCarsonsEquations,\n calculate_impedance)\n\nclass Cable:\n resistance: {\n 'A': per-length resistance of conductor A in ohm/meters\n ...\n }\n geometric_mean_radius: {\n 'A': geometric mean radius of conductor A in meters\n ...\n }\n wire_positions: {\n 'A': (x, y) cross-sectional position of conductor A in meters\n ...\n }\n outside_radius: {\n 'A': outside radius of conductor A, including insulation and jacket thickness\n ...\n }\n insulation_thickness: {\n 'A': insulation thickness of conductor A\n ...\n }\n phases: {'A', ... }\n\ncable_impedance = calculate_impedance(MultiConductorCarsonsEquations(Cable()))\n```\n\nTo model a triplex secondary cable, the inputs should be keyed on secondary conductors `S1` and `S2`. The impedance result\nis a 2 x 2 matrix.\n\n```python\nclass Cable:\n resistance: {\n 'S1': per-length resistance of conductor S1 in ohm/meters\n ...\n }\n geometric_mean_radius: {\n 'S1': geometric mean radius of conductor S1 in meters\n ...\n }\n wire_positions: {\n 'S1': (x, y) cross-sectional position of conductor S1 in meters\n ...\n }\n outside_radius: {\n 'S1': outside radius of conductor S1, including insulation and jacket thickness\n ...\n }\n insulation_thickness: {\n 'S1': insulation thickness of conductor S1\n ...\n }\n phases: {'S1', ... }\n```\n\nFor examples of how to use the model, see the [multi-conductor cable\ntests](https://github.com/opusonesolutions/carsons/blob/master/tests/test_multi_conductor.py).\n\nProblem Description\n-------------------\n\nCarsons equations model an AC transmission or distribution line into an\nequivalent set of phase-phase impedances, which can be used to model the\nline in a power flow analysis.\n\nFor example, say we have a 4-wire system on a utility pole, with `A`,\n`B`, `C` phase conductors as well as a neutral cable N. We know that\nwhen conductors carry electrical current, they exhibit a magnetic field\n--- so its pretty easy to imagine that, e.g., the magnetic field\nproduced by `A` would interact with the `B`, `C`, and `N` conductors.\n\n \u2001 B\n \u2001 O\n \u2001 |\n \u2001 |\n \u2001 A N | C\n \u2001 O O| O\n \u2001 ----------|-----------\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 |\n \u2001 ==============[Ground]============================\n \u2001 / / / / / / / / /\n \u2001 / / / / / / /\n / / / / /\n \u2001\n \u2001\n \u2001\n \u2001\n \u2001\n \u2001\n \u2001\n \u2001\n \u2001\n \u2001\n \u2001 A* N* C*\n \u2001 0 0 0\n \u2001\n \u2001 B*\n \u2001 0\n\n Figure: Cross-section of a 4-wire distribution line, with\n ground return.\n\nHowever, each conductor also has a ground return path (or 'image') ---\nshown as `A*`, `B*`, `C*`, and `N*` in the figure above --- which is a\nmagnetically induced current path in the ground. When A produces a\nmagnetic field, that field *also* interacts with `B*`, `C*`, `N*`, *and*\n`A*`. Carsons equations model all these interactions and reduce them to\nan equivalent impedance matrix that makes it much easier to model this\nsystem.\n\nIn addition `carsons` implements the kron reduction, a conversion that\napproximates the impedances caused by neutral cables by incorporating\nthem into the impedances for phase `A`, `B`, and `C`. Since most AC and\nDC powerflow formulations don't model the neutral cable, this is a\nvaluable simplification.\n\nReferences\n----------\n\nThe following works were used to produce this formulation:\n\n- [Leonard L. Grigsby -- Electrical Power Generation, Transmission and\n Distribution](https://books.google.ca/books?id=XMl8OU4wIEQC&lpg=SA21-PA4&dq=kron%20reduction%20carson%27s%20equation&pg=SA21-PA4#v=onepage&q=kron%20reduction%20carson's%20equation&f=true)\n- [William H. Kersting -- Distribution System Modelling and Analysis\n 2e](https://books.google.ca/books?id=1R2OsUGSw_8C&lpg=PA84&dq=carson%27s%20equations&pg=PA85#v=onepage&q=carson's%20equations&f=false)\n- [William H. Kersting, Distribution System Analysis Subcommittee --\n Radial Distribution Test\n Feeders](http://sites.ieee.org/pes-testfeeders/files/2017/08/testfeeders.pdf)\n- [Timothy Vismore -- The Vismor\n Milieu](https://vismor.com/documents/power_systems/transmission_lines/S2.SS1.php)\n- [Daniel Van Dommelen, Albert Van Ranst, Robert Poncelet -- GIC\n Influence on Power Systems calculated by Carson's\n method](https://core.ac.uk/download/pdf/34634673.pdf)\n- [Andrea Ballanti, Roger Dugan -- Cable Modelling in OpenDSS](http://svn.code.sf.net/p/electricdss/code/trunk/Distrib/Doc/TechNote%20CableModelling.pdf)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/opusonesolutions/carsons", "keywords": "carsons,cables,lines,power systems", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "carsons", "package_url": "https://pypi.org/project/carsons/", "platform": "", "project_url": "https://pypi.org/project/carsons/", "project_urls": { "Homepage": "https://github.com/opusonesolutions/carsons" }, "release_url": "https://pypi.org/project/carsons/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "A python library computing carson's equations.", "version": "0.5.0", "yanked": false, "yanked_reason": null }, "last_serial": 10885306, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6778a29ad22c3db30c576d6ab70a35f8", "sha256": "40c9e79be007fd9ae9bcd57439b2830843ea9ef4695e1fc534267f3705f83dde" }, "downloads": -1, "filename": "carsons-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6778a29ad22c3db30c576d6ab70a35f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2485, "upload_time": "2018-10-12T17:41:34", "upload_time_iso_8601": "2018-10-12T17:41:34.469233Z", "url": "https://files.pythonhosted.org/packages/0c/c0/e1f89416495bce02efcd4f904d436b0582f711863d7a271a427ebf809675/carsons-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a53d8bd1c08cf614dd4a8440a6dc2be0", "sha256": "666999d8291f86ab0711baeb629bdd47b18e12c2bb9f02afb2be3991739f7492" }, "downloads": -1, "filename": "carsons-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a53d8bd1c08cf614dd4a8440a6dc2be0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1415, "upload_time": "2018-10-12T17:41:35", "upload_time_iso_8601": "2018-10-12T17:41:35.592059Z", "url": "https://files.pythonhosted.org/packages/38/a3/47593f7ee89a4d58a7998776914e966699d5634437e1acc5688e44be0ef0/carsons-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "906c063744e754b5b693f7191c3dd41a", "sha256": "11354d2f9fec3d3821cf023b93ca646fe0e62c67f1ffd40e05e72301eea1a0d2" }, "downloads": -1, "filename": "carsons-0.0.2.tar.gz", "has_sig": false, "md5_digest": "906c063744e754b5b693f7191c3dd41a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3748, "upload_time": "2018-11-06T19:09:25", "upload_time_iso_8601": "2018-11-06T19:09:25.127426Z", "url": "https://files.pythonhosted.org/packages/fc/ae/36d77f77e9abb0a46732144ef6e8bc3b672576759a24f8f69e3cf5a6c982/carsons-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "758409100d5ce8076fda8ca451fd18e2", "sha256": "f838ff7058e364f9e6df9b0a229f9588cd6e223660be3eae985d9a149491d975" }, "downloads": -1, "filename": "carsons-0.0.3.tar.gz", "has_sig": false, "md5_digest": "758409100d5ce8076fda8ca451fd18e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6369, "upload_time": "2018-11-13T05:00:33", "upload_time_iso_8601": "2018-11-13T05:00:33.299129Z", "url": "https://files.pythonhosted.org/packages/b8/fc/d35a3436a3b60c7a4e3f3869a8d619d790ee46d897f660325dc5adf87043/carsons-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "dc7f973329962341e314ab593c670099", "sha256": "2815e75f3ff897f194d3910cdad7baf53aa30377d397998862f5b85c7765dc04" }, "downloads": -1, "filename": "carsons-0.1.0.tar.gz", "has_sig": false, "md5_digest": "dc7f973329962341e314ab593c670099", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6366, "upload_time": "2019-01-22T05:16:16", "upload_time_iso_8601": "2019-01-22T05:16:16.763494Z", "url": "https://files.pythonhosted.org/packages/12/1b/d9e9be66938c43d2a0732c76b5e384a8615d382bf35fb0be517faddb7474/carsons-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8e35e9b60efaa594cb1dae94ae12db16", "sha256": "ec2e98a167e9f1329893c1b2f01d489b12aecb60de9a62ed3cdbb6933f6ed0bd" }, "downloads": -1, "filename": "carsons-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8e35e9b60efaa594cb1dae94ae12db16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7503, "upload_time": "2019-04-10T19:36:36", "upload_time_iso_8601": "2019-04-10T19:36:36.877271Z", "url": "https://files.pythonhosted.org/packages/dc/81/912f6b619140e18b6eb3c939a3fe488aaf0fced9e9481162e3b6ac2abdde/carsons-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "94f25f8f76e7cc4557265e869598a02b", "sha256": "42f5c2bc1dbeec9a43ae54cace199e6c8c23344a9ca26e6d95fd4cd64a803c1b" }, "downloads": -1, "filename": "carsons-0.2.1.tar.gz", "has_sig": false, "md5_digest": "94f25f8f76e7cc4557265e869598a02b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7729, "upload_time": "2019-04-11T17:55:50", "upload_time_iso_8601": "2019-04-11T17:55:50.483311Z", "url": "https://files.pythonhosted.org/packages/72/83/b0e2954f67741643b1fd2be62d3f1f6a5b96f99ad1c16fa4a0faabcff2eb/carsons-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "1f38427f9055d1931b597d8aa0ead2f6", "sha256": "bbae34ed600246a7375ba3d20ee7b19bade6f42c0f04fa75a952fb619a414d32" }, "downloads": -1, "filename": "carsons-0.2.2.tar.gz", "has_sig": false, "md5_digest": "1f38427f9055d1931b597d8aa0ead2f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7607, "upload_time": "2019-06-25T13:26:59", "upload_time_iso_8601": "2019-06-25T13:26:59.422787Z", "url": "https://files.pythonhosted.org/packages/8d/65/60d2b48d851a336584949c632f0998e3bbc8f9f1d383e0a3d70fe2e4849b/carsons-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3512e628aee41a86dc08ed6d1e7c51c7", "sha256": "1cacdcedf5f621072a362b61597cc409ff730edbedf2be87fd35d0117e7730ee" }, "downloads": -1, "filename": "carsons-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3512e628aee41a86dc08ed6d1e7c51c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7623, "upload_time": "2019-10-25T04:03:24", "upload_time_iso_8601": "2019-10-25T04:03:24.845257Z", "url": "https://files.pythonhosted.org/packages/a9/ee/7b720a75c6fc67a82a50250a3e3187df14cdc22ecae2f77678c924ea42cd/carsons-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "8f56a909954cd09b807aeb2ed5110a46", "sha256": "87bd9569f15720ba692273e2fc7ee99d4737b190637ec8f40a94582a35d8c904" }, "downloads": -1, "filename": "carsons-0.3.1.tar.gz", "has_sig": false, "md5_digest": "8f56a909954cd09b807aeb2ed5110a46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7825, "upload_time": "2019-10-25T15:53:08", "upload_time_iso_8601": "2019-10-25T15:53:08.614537Z", "url": "https://files.pythonhosted.org/packages/56/8d/276fb373ba223a196009cc1180f5a96cd930b4163683f5a2d1201422c9d3/carsons-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "095d6136715f2fcc3dbca2ee319fb115", "sha256": "7b33e1fb5d7b17e1d793d877cf0f6f050f0ae20ae2d0955ce128fd6561c26b73" }, "downloads": -1, "filename": "carsons-0.4.0.tar.gz", "has_sig": false, "md5_digest": "095d6136715f2fcc3dbca2ee319fb115", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8757, "upload_time": "2020-02-11T19:26:45", "upload_time_iso_8601": "2020-02-11T19:26:45.576606Z", "url": "https://files.pythonhosted.org/packages/39/ba/bd8b3210d335a2e45bdb8bbb2a7b88912b2349f0b0387b1f52ebc3b9e9d4/carsons-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "174877bb24e7d8030137796dbec8bb16", "sha256": "3c4c6c7064fba67f626e2eb345df67c52b975071eefc744d791bfd80b5dcdb7c" }, "downloads": -1, "filename": "carsons-0.4.1.tar.gz", "has_sig": false, "md5_digest": "174877bb24e7d8030137796dbec8bb16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8741, "upload_time": "2020-02-12T22:37:32", "upload_time_iso_8601": "2020-02-12T22:37:32.027417Z", "url": "https://files.pythonhosted.org/packages/04/6a/ea9b21f98fd0bed66839a55ea85103bedbe41056e1a75f58d93ee0d8075e/carsons-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "9ee7ee03183c5e89b5efcdc41d16d33b", "sha256": "c7401ebe8ab1fde3b53981d00070bbeddf564b1e65a7a26ab6203ded97c47fc8" }, "downloads": -1, "filename": "carsons-0.5.0.tar.gz", "has_sig": false, "md5_digest": "9ee7ee03183c5e89b5efcdc41d16d33b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8912, "upload_time": "2020-03-12T18:30:27", "upload_time_iso_8601": "2020-03-12T18:30:27.171084Z", "url": "https://files.pythonhosted.org/packages/7b/8b/0fd9675813201e3d4c4573c90d451487c89b92b8681436f06e0b065bf4ac/carsons-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1a1": [ { "comment_text": "", "digests": { "md5": "9c1d191119870425aa40c1f6dbd2f8b9", "sha256": "972447f3ccd68202015b57b900ab11a1ac2b6ca9159eb57a20f0478a6395233e" }, "downloads": -1, "filename": "carsons-0.5.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "9c1d191119870425aa40c1f6dbd2f8b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9548, "upload_time": "2021-07-12T14:34:46", "upload_time_iso_8601": "2021-07-12T14:34:46.602189Z", "url": "https://files.pythonhosted.org/packages/6f/83/3a72235b6cc35fed796c75283969f54b3b49f76c1a67a34d2c181774a1df/carsons-0.5.1a1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9c6472b0977076a9a704bb09d8045df1", "sha256": "513eac77842ed46220db24b824984fc116131d4b53b892258d1d9f1015b70e3a" }, "downloads": -1, "filename": "carsons-0.5.1a1.tar.gz", "has_sig": false, "md5_digest": "9c6472b0977076a9a704bb09d8045df1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12345, "upload_time": "2021-07-12T14:34:47", "upload_time_iso_8601": "2021-07-12T14:34:47.782714Z", "url": "https://files.pythonhosted.org/packages/31/fa/70ea84bb3da6cbe6d76c88491cc155b4b7e6970f1c662b6d7e98f94ac393/carsons-0.5.1a1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9ee7ee03183c5e89b5efcdc41d16d33b", "sha256": "c7401ebe8ab1fde3b53981d00070bbeddf564b1e65a7a26ab6203ded97c47fc8" }, "downloads": -1, "filename": "carsons-0.5.0.tar.gz", "has_sig": false, "md5_digest": "9ee7ee03183c5e89b5efcdc41d16d33b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8912, "upload_time": "2020-03-12T18:30:27", "upload_time_iso_8601": "2020-03-12T18:30:27.171084Z", "url": "https://files.pythonhosted.org/packages/7b/8b/0fd9675813201e3d4c4573c90d451487c89b92b8681436f06e0b065bf4ac/carsons-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }