{ "info": { "author": "Jay Marcyes", "author_email": "jay@marcyes.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Topic :: Database", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "Prom\n====\n\nAn opinionated lightweight orm for PostgreSQL or SQLite.\n\nProm has been used in both single threaded and multi-threaded\nenvironments, including environments using Greenthreads.\n\n1 Minute Getting Started with SQLite\n------------------------------------\n\nFirst, install prom:\n\n::\n\n $ pip install prom\n\nSet an environment variable:\n\n::\n\n $ export PROM_DSN=prom.interface.sqlite.SQLite://:memory:\n\nStart python:\n\n::\n\n $ python\n\nCreate a prom Orm:\n\n.. code:: python\n\n >>> import prom\n >>>\n >>> class Foo(prom.Orm):\n ... table_name = \"foo_table_name\"\n ... bar = prom.Field(int)\n ...\n >>>\n\nNow go wild and create some ``Foo`` objects:\n\n.. code:: python\n\n >>> for x in range(10):\n ... f = Foo.create(bar=x)\n ...\n >>>\n\nNow query them:\n\n.. code:: python\n\n >>> f = Foo.query.first()\n >>> f.bar\n 0\n >>> f.pk\n 1\n >>>\n >>> for f in Foo.query.in_bar([2, 3, 4]):\n ... f.pk\n ...\n 3\n 4\n 5\n >>>\n\nUpdate them:\n\n.. code:: python\n\n >>> for f in Foo.query:\n ... f.bar += 100\n ... f.save()\n ...\n >>>\n\nand get rid of them:\n\n.. code:: python\n\n >>> for f in Foo.query:\n ... f.delete()\n ...\n >>>\n\nCongratulations, you have now created, retrieved, updated, and deleted\nfrom your database.\n\n--------------\n\nExample \u2013 Create a User class\n-----------------------------\n\nHere is how you would define a new Orm class:\n\n.. code:: python\n\n # app.models (app/models.py)\n from prom import Orm, Field, Index\n\n class User(Orm):\n\n table_name = \"user_table_name\"\n\n username = Field(str, True, unique=True), # string field (required) with a unique index\n\n password = Field(str, True), # string field (required)\n\n email = Field(str), # string field (not required)\n\n index_email = Index('email') # set a normal index on email field\n\nYou can specify the connection using a prom dsn url:\n\n::\n\n ://:@:/?#\n\nSo to use the builtin Postgres interface on ``testdb`` database on host\n``localhost`` with username ``testuser`` and password ``testpw``:\n\n::\n\n prom.interface.postgres.PostgreSQL://testuser:testpw@localhost/testdb\n\nTo use our new User class:\n\n.. code:: python\n\n # testprom.py\n import prom\n from app.models import User\n\n prom.configure(\"prom.interface.postgres.PostgreSQL://testuser:testpw@localhost/testdb\")\n\n # create a user\n u = User(username='foo', password='awesome_and_secure_pw_hash', email='foo@bar.com')\n u.save()\n\n # query for our new user\n u = User.query.is_username('foo').get_one()\n print u.username # foo\n\n # get the user again via the primary key:\n u2 = User.query.get_pk(u.pk)\n print u.username # foo\n\n # let's add a bunch more users:\n for x in range(10):\n username = \"foo{}\".format(x)\n ut = User(username=username, password=\"...\", email=\"{}@bar.com\".format(username))\n ut.save()\n\n # now let's iterate through all our new users:\n for u in User.query.get():\n print u.username\n\nEnvironment Configuration\n-------------------------\n\nProm can be automatically configured on import by setting the\nenvironment variable ``PROM_DSN``:\n\n::\n\n export PROM_DSN=prom.interface.postgres.PostgreSQL://testuser:testpw@localhost/testdb\n\nIf you have multiple connections, you can actually set multiple\nenvironment variables:\n\n::\n\n export PROM_DSN_1=prom.interface.postgres.PostgreSQL://testuser:testpw@localhost/testdb1#conn_1\n export PROM_DSN_2=prom.interface.postgres.PostgreSQL://testuser:testpw@localhost/testdb2#conn_2\n\nAfter you\u2019ve set the environment variable, then you just need to import\nProm in your code:\n\n.. code:: python\n\n import prom\n\nand Prom will take care of parsing the dsn url(s) and creating the\nconnection(s) automatically.\n\nThe Query class\n---------------\n\nYou can access the query, or table, instance for each ``prom.Orm`` child\nyou create by calling its ``.query`` class property:\n\n.. code:: python\n\n print User.query # prom.Query\n\nThrough the power of magic, everytime you call this property, a new\n``prom.Query`` instance will be created.\n\nCustomize the Query class\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can also extend the default ``prom.Query`` class and let your\n``prom.Orm`` child know about it\n\n.. code:: python\n\n # app.models (app/models.py)\n\n class DemoQuery(prom.Query):\n def get_by_foo(self, *foos):\n \"\"\"get all demos with matching foos, ordered by last updated first\"\"\"\n return self.in_foo(*foos).desc_updated().get()\n\n class DemoOrm(prom.Orm):\n query_class = DemoQuery\n\n\n DemoOrm.query.get_by_foo(1, 2, 3) # this now works\n\nNotice the ``query_class`` class property on the ``DemoOrm`` class. Now\nevery instance of ``DemoOrm`` (or child that derives from it) will\nforever use ``DemoQuery``.\n\nUsing the Query class\n~~~~~~~~~~~~~~~~~~~~~\n\nYou should check the actual code for the query class in\n``prom.query.Query`` for all the methods you can use to create your\nqueries, Prom allows you to set up the query using psuedo method names\nin the form:\n\n::\n\n command_fieldname(field_value)\n\nSo, if you wanted to select on the ``foo`` fields, you could do:\n\n.. code:: python\n\n query.is_foo(5)\n\nor, if you have the name in the field as a string:\n\n::\n\n command_field(fieldname, field_value)\n\nso, we could also select on ``foo`` this way:\n\n.. code:: python\n\n query.is_field('foo', 5)\n\nThe different WHERE commands:\n\n- ``in`` \u2013 ``in_field(fieldname, field_vals)`` \u2013 do a sql\n ``fieldname IN (field_val1, ...)`` query\n- ``nin`` \u2013 ``nin_field(fieldname, field_vals)`` \u2013 do a sql\n ``fieldname NOT IN (field_val1, ...)`` query\n- ``is`` \u2013 ``is_field(fieldname, field_val)`` \u2013 do a sql\n ``fieldname = field_val`` query\n- ``not`` \u2013 ``not_field(fieldname, field_val)`` \u2013 do a sql\n ``fieldname != field_val`` query\n- ``gt`` \u2013 ``gt_field(fieldname, field_val)`` \u2013 do a sql\n ``fieldname > field_val`` query\n- ``gte`` \u2013 ``gte_field(fieldname, field_val)`` \u2013 do a sql\n ``fieldname >= field_val`` query\n- ``lt`` \u2013 ``lt_field(fieldname, field_val)`` \u2013 do a sql\n ``fieldname < field_val`` query\n- ``lte`` \u2013 ``lte_field(fieldname, field_val)`` \u2013 do a sql\n ``fieldname <= field_val`` query\n\nThe different ORDER BY commands:\n\n- ``asc`` \u2013 ``asc_field(fieldname)`` \u2013 do a sql\n ``ORDER BY fieldname ASC`` query\n- ``desc`` \u2013 ``desc_field(fieldname)`` \u2013 do a sql\n ``ORDER BY fieldname DESC`` query\n\nYou can also sort by a list of values:\n\n.. code:: python\n\n foos = [3, 5, 2, 1]\n\n rows = query.select_foo().in_foo(foos).asc_foo(foos).values()\n print rows # [3, 5, 2, 1]\n\nAnd you can also set limit and page:\n\n.. code:: python\n\n query.get(10, 1) # get 10 results for page 1 (offset 0)\n query.get(10, 2) # get 10 results for page 2 (offset 10)\n\nThey can be chained together:\n\n.. code:: python\n\n # SELECT * from table_name WHERE foo=10 AND bar='value 2' ORDER BY che DESC LIMIT 5\n query.is_foo(10).is_bar(\"value 2\").desc_che().get(5)\n\nYou can also write your own queries by hand:\n\n.. code:: python\n\n query.raw(\"SELECT * FROM table_name WHERE foo = %s\", [foo_val])\n\nThe ``prom.Query`` has a couple helpful query methods to make grabbing\nrows easy:\n\n- get \u2013 ``get(limit=None, page=None)`` \u2013 run the select query.\n- get_one \u2013 ``get_one()`` \u2013 run the select query with a LIMIT 1.\n- value \u2013 ``value()`` \u2013 similar to ``get_one()`` but only returns the\n selected field(s)\n- values \u2013 ``values(limit=None, page=None)`` \u2013 return the selected\n fields as a tuple, not an Orm instance\n\n This is really handy for when you want to get all the ids as a list:\n\n .. code:: python\n\n # get all the bar ids we want\n bar_ids = Bar.query.select_pk().values()\n\n # now pull out the Foo instances that correspond to the Bar ids\n foos = Foo.query.is_bar_id(bar_ids).get()\n\n- pk \u2013 ``pk()`` \u2013 return the selected primary key\n- pks \u2013 ``pks(limit=None, page=None)`` \u2013 return the selected primary\n keys\n- has \u2013 ``has()`` \u2013 return True if there is atleast one row in the db\n matching query\n- get_pk \u2013 ``get_pk(pk)`` \u2013 run the select query with a\n ``WHERE _id = pk``\n- get_pks \u2013 ``get_pks([pk1, pk2,...])`` \u2013 run the select query with\n ``WHERE _id IN (...)``\n- raw \u2013 ``raw(query_str, *query_args, **query_options)`` \u2013 run a raw\n query\n- all \u2013 ``all()`` \u2013 return an iterator that can move through every row\n in the db matching query\n- count \u2013 ``count()`` \u2013 return an integer of how many rows match the\n query\n\n**NOTE**, Doing custom queries using ``raw`` would be the only way to do\njoin queries.\n\nSpecialty Queries\n^^^^^^^^^^^^^^^^^\n\nIf you have a date or datetime field, you can pass kwargs to `fine tune\ndate\nqueries `__:\n\n.. code:: python\n\n import datetime\n\n class Foo(prom.Orm):\n\n table_name = \"foo_table\"\n\n dt = prom.Field(datetime.datetime)\n\n index_dt = prom.Index('dt')\n\n # get all the foos that have the 7th of every month\n r = q.is_dt(day=7).all() # SELECT * FROM foo_table WHERE EXTRACT(DAY FROM dt) = 7\n\n # get all the foos in 2013\n r = q.is_dt(year=2013).all()\n\nHopefully you get the idea from the above code.\n\nThe Iterator class\n~~~~~~~~~~~~~~~~~~\n\nthe ``get`` and ``all`` query methods return a ``prom.query.Iterator``\ninstance. This instance has a useful attribute ``has_more`` that will be\ntrue if there are more rows in the db that match the query.\n\nSimilar to the Query class, you can customize the Iterator class by\nsetting the ``iterator_class`` class variable:\n\n.. code:: python\n\n class DemoIterator(prom.Iterator):\n pass\n\n class DemoOrm(prom.Orm):\n iterator_class = DemoIterator\n\nMultiple db interfaces or connections\n-------------------------------------\n\nIt\u2019s easy to have one set of ``prom.Orm`` children use one connection\nand another set use a different connection, the fragment part of a Prom\ndsn url sets the name:\n\n.. code:: python\n\n import prom\n prom.configure(\"Interface://testuser:testpw@localhost/testdb#connection_1\")\n prom.configure(\"Interface://testuser:testpw@localhost/testdb#connection_2\")\n\n class Orm1(prom.Orm):\n connection_name = \"connection_1\"\n \n class Orm2(prom.Orm):\n connection_name = \"connection_2\"\n\nNow, any class that extends ``Orm1`` will use ``connection_1`` and any\norm that extends ``Orm2`` will use ``connection_2``.\n\nSchema class\n------------\n\nThe Field class\n~~~~~~~~~~~~~~~\n\nYou can create fields in your schema using the ``Field`` class, the\nfield has a signature like this:\n\n.. code:: python\n\n Field(field_type, field_required, **field_options)\n\nThe ``field_type`` is the python type (eg, ``str`` or ``int`` or\n``datetime``) you want the field to be.\n\nThe ``field_required`` is a boolean, it is true if the field needs to\nhave a value, false if it doesn\u2019t need to be in the db.\n\nThe ``field_options`` are any other settings for the fields, some\npossible values:\n\n- ``size`` \u2013 the size of the field (for a ``str`` this would be the\n number of characters in the string)\n- ``max_size`` \u2013 The max size of the field (for a ``str``, the maximum\n number of characters, for an ``int``, the biggest number you\u2019re\n expecting)\n- ``min_size`` \u2013 The minimum size of the field (can only be used with a\n corresponding ``max_size`` value)\n- ``unique`` \u2013 set to True if this field value should be unique among\n all the fields in the db.\n- ``ignore_case`` \u2013 set to True if indexes on this field should ignore\n case\n\nForeign Keys\n~~~~~~~~~~~~\n\nYou can have a field reference the primary key of another field:\n\n.. code:: python\n\n from prom import Orm, Field\n\n class Orm1(Orm):\n table_name = \"table_1\"\n\n foo = Field(int)\n\n\n class Orm2(Orm):\n table_name = \"table_2\"\n\n orm1_id=prom.Field(Orm1, True) # strong reference\n\n orm1_id_2=prom.Field(Orm1, False) # weak reference\n\nPassing in an Orm class as the type of the field will create a foreign\nkey reference to that Orm. If the field is required, then it will be a\nstrong reference that deletes the row from ``Orm2`` if the row from\n``s1`` is deleted, if the field is not required, then it is a weak\nreference, which will set the column to ``NULL`` in the db if the row\nfrom ``Orm1`` is deleted.\n\nVersions\n--------\n\nWhile Prom will most likely work on other versions, these are the\nversions we are running it on (just for references):\n\nPython\n~~~~~~\n\n::\n\n $ python --version\n Python 2.7.3\n\nPostgres\n~~~~~~~~\n\n::\n\n $ psql --version\n psql (PostgreSQL) 9.3.6\n\nInstallation\n------------\n\n.. _postgres-1:\n\nPostgres\n~~~~~~~~\n\nIf you want to use Prom with Postgres, you need psycopg2:\n\n::\n\n $ apt-get install libpq-dev python-dev\n $ pip install psycopg\n\nGreen threads\n~~~~~~~~~~~~~\n\nIf you want to use Prom with gevent, you\u2019ll need gevent and psycogreen:\n\n::\n\n $ pip install gevent\n $ pip install psycogreen\n\nThese are the versions we\u2019re using:\n\n::\n\n $ pip install \"gevent==1.0.1\"\n $ pip install \"psycogreen==1.0\"\n\nThen you can setup Prom like this:\n\n.. code:: python\n\n import gevent.monkey\n gevent.monkey.patch_all()\n\n import prom.gevent\n prom.gevent.patch_all()\n\nNow you can use Prom in the same way you always have. If you would like\nto configure the threads and stuff, you can pass in some configuration\noptions using the dsn, the three parameters are *async*, *pool_maxconn*,\n*pool_minconn*, and *pool_class*. The only one you\u2019ll really care about\nis *pool_maxconn* which sets how many connections should be created.\n\nAll the options will be automatically set when\n``prom.gevent.patch_all()`` is called.\n\n.. _prom-1:\n\nProm\n~~~~\n\nProm installs using pip:\n\n::\n\n $ pip install prom\n\nand to install the latest and greatest:\n\n::\n\n $ pip install --upgrade git+https://github.com/Jaymon/prom#egg=prom\n\nUsing for the first time\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nProm takes the approach that you don\u2019t want to be hassled with table\ninstallation while developing, so when it tries to do something and sees\nthat the table doesn\u2019t yet exist, it will use your defined fields for\nyour ``prom.Orm`` child and create a table for you, that way you don\u2019t\nhave to remember to run a script or craft some custom db query to add\nyour tables, Prom takes care of that for you automatically. Likewise, if\nyou add a field (and it\u2019s not required) then prom will go ahead and add\nthat field to your table so you don\u2019t have to bother with crafting\n``ALTER`` queries while developing.\n\nIf you want to install the tables manually, you can create a script or\nsomething and use the ``install()`` method:\n\n::\n\n SomeOrm.install()\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jaymon/prom", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "prom", "package_url": "https://pypi.org/project/prom/", "platform": "", "project_url": "https://pypi.org/project/prom/", "project_urls": { "Homepage": "http://github.com/jaymon/prom" }, "release_url": "https://pypi.org/project/prom/1.0.1/", "requires_dist": null, "requires_python": "", "summary": "A sensible orm for PostgreSQL or SQLite", "version": "1.0.1" }, "last_serial": 5941508, "releases": { "0.10.10": [ { "comment_text": "", "digests": { "md5": "4ceda521df7666bfd6cba33690c03324", "sha256": "7075342a7c80c7f65360a1d0b7f08c0d282765caef02d24a9db2aacaf6bbd371" }, "downloads": -1, "filename": "prom-0.10.10.tar.gz", "has_sig": false, "md5_digest": "4ceda521df7666bfd6cba33690c03324", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85001, "upload_time": "2019-07-03T21:27:50", "url": "https://files.pythonhosted.org/packages/74/6e/0b93e54d92be3bb952d16b33060c53fb269c99503a092414576e7e6dc84f/prom-0.10.10.tar.gz" } ], "0.10.2": [ { "comment_text": "", "digests": { "md5": "b194a5f14a878f2b9fb72d454376003e", "sha256": "e18f998a826a495e5f6d2ab7ac45186b57b11cbf6bf1ac63d8983236276ccad3" }, "downloads": -1, "filename": "prom-0.10.2.tar.gz", "has_sig": false, "md5_digest": "b194a5f14a878f2b9fb72d454376003e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81609, "upload_time": "2018-03-02T00:22:05", "url": "https://files.pythonhosted.org/packages/2a/6a/3e8b064008a3170ae3cf7e8765b2d6fd511292591ab9fd76f4a44c51240c/prom-0.10.2.tar.gz" } ], "0.10.3": [ { "comment_text": "", "digests": { "md5": "b81126e28e5b6fab006911410cd583a5", "sha256": "73e25ec1efc1ea20e99fdb2e50b4169e4f225a66a28d614fd3aaadc5a57c6081" }, "downloads": -1, "filename": "prom-0.10.3.tar.gz", "has_sig": false, "md5_digest": "b81126e28e5b6fab006911410cd583a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81815, "upload_time": "2018-03-02T00:51:35", "url": "https://files.pythonhosted.org/packages/fd/cb/479488419963bd2f487804192488cfcc89ffd2c7601997336bcee938833e/prom-0.10.3.tar.gz" } ], "0.10.5": [ { "comment_text": "", "digests": { "md5": "02c67e31a1eb40a6916074e88ec508cd", "sha256": "2e0a6a368adb5e547ed167472482a5e87511fd6b921d66c8ab999487122f5b29" }, "downloads": -1, "filename": "prom-0.10.5.tar.gz", "has_sig": false, "md5_digest": "02c67e31a1eb40a6916074e88ec508cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84736, "upload_time": "2018-03-23T07:11:11", "url": "https://files.pythonhosted.org/packages/03/ff/b47521d8551ab554c9705f9a79a9b8c18ae313ee5669139e5f6bcbe88f13/prom-0.10.5.tar.gz" } ], "0.10.6": [ { "comment_text": "", "digests": { "md5": "23ed2faf111b15fac61acce71d269db8", "sha256": "06c32d32ed9b4c8a17527f2f037cc480036fff913a620c452203815d77c169f6" }, "downloads": -1, "filename": "prom-0.10.6.tar.gz", "has_sig": false, "md5_digest": "23ed2faf111b15fac61acce71d269db8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82848, "upload_time": "2018-03-23T07:39:41", "url": "https://files.pythonhosted.org/packages/75/30/4b2304166b00fe7bb5c12642fddab9cf30093a56530a99fd11909379b758/prom-0.10.6.tar.gz" } ], "0.10.7": [ { "comment_text": "", "digests": { "md5": "7c906beca74fec9ab664e782a287e1bd", "sha256": "44626d49a9d0fcf2606285263037e23f8496d835a3db0bda9aba9a503c93a86f" }, "downloads": -1, "filename": "prom-0.10.7.tar.gz", "has_sig": false, "md5_digest": "7c906beca74fec9ab664e782a287e1bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83919, "upload_time": "2018-03-27T00:26:30", "url": "https://files.pythonhosted.org/packages/46/4a/ef09221840fdb5f7c86403171e9fbebc44635d4e0686684742c435c91488/prom-0.10.7.tar.gz" } ], "0.10.8": [ { "comment_text": "", "digests": { "md5": "be6a237476fec5948e8c2c40d43f0cd5", "sha256": "8c0839698b197c1449864f9a35020cc0e9495201453f96286f09f51ff19de865" }, "downloads": -1, "filename": "prom-0.10.8.tar.gz", "has_sig": false, "md5_digest": "be6a237476fec5948e8c2c40d43f0cd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83994, "upload_time": "2018-03-28T08:14:08", "url": "https://files.pythonhosted.org/packages/bd/2e/ca156b146e81d89f1ba1d1c550b32317a9e1c3675e4a11cee569d13220bc/prom-0.10.8.tar.gz" } ], "0.10.9": [ { "comment_text": "", "digests": { "md5": "1e3d3a9fd722e7cce6f64fe9e94d7af6", "sha256": "04a7c182043353e7f251927b7f02a95ca0ef3d4ef318ee0821d6608bb9220d5d" }, "downloads": -1, "filename": "prom-0.10.9.tar.gz", "has_sig": false, "md5_digest": "1e3d3a9fd722e7cce6f64fe9e94d7af6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84825, "upload_time": "2019-07-02T21:00:19", "url": "https://files.pythonhosted.org/packages/45/39/304314064f74ac07d762f3cbee5d796314fd61d6441328caf113ae20eee2/prom-0.10.9.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "47ad2e620ef71a380bdb5e6a6cd30754", "sha256": "e69398a3d35045396fdee3c4d86153f45471a5066522369225a9a12013a0a297" }, "downloads": -1, "filename": "prom-0.3.tar.gz", "has_sig": false, "md5_digest": "47ad2e620ef71a380bdb5e6a6cd30754", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9527, "upload_time": "2013-07-19T02:28:07", "url": "https://files.pythonhosted.org/packages/b3/20/189ca2282267d88141dfe1644cf7ba88ba618bd8cc3501ad088772c5c54f/prom-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "cf3dbd450725aa091178b446182d39e8", "sha256": "8fac9b5854efcccf24988a2acf32605b6881e915e392e88519f3542362046076" }, "downloads": -1, "filename": "prom-0.4.tar.gz", "has_sig": false, "md5_digest": "cf3dbd450725aa091178b446182d39e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9264, "upload_time": "2013-07-19T18:37:52", "url": "https://files.pythonhosted.org/packages/9c/cb/612f22e97d12dbc00494793c97ba6e49f576a863a8bd6a23470fb9939a80/prom-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "46fa7e14576432a315f72792ce23158e", "sha256": "25954c25f4a948fe7528213ae00a3105333051c15511f3fb5826ba8e0145c50b" }, "downloads": -1, "filename": "prom-0.4.1.tar.gz", "has_sig": false, "md5_digest": "46fa7e14576432a315f72792ce23158e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14142, "upload_time": "2013-07-19T21:03:14", "url": "https://files.pythonhosted.org/packages/aa/70/a79fb40dcfa3790d246363e3ce88882eed3396c5eae0def74520381a0e32/prom-0.4.1.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "5e9ec0e865b99511e0c12f98a10ad446", "sha256": "6ed61ff1155fd028d7abf483f34fa0e1d4944d075714680f0e7fb1987e00956d" }, "downloads": -1, "filename": "prom-0.4.3.tar.gz", "has_sig": false, "md5_digest": "5e9ec0e865b99511e0c12f98a10ad446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14220, "upload_time": "2013-07-19T22:42:04", "url": "https://files.pythonhosted.org/packages/75/a8/50bc337513232038a334fa42d678fcd1a60c730ccd5a58db95fcfdefe001/prom-0.4.3.tar.gz" } ], "0.9.10": [ { "comment_text": "", "digests": { "md5": "378e17d90e4e59db02d6ca1a97ba623a", "sha256": "a6bf320113901b38f5ec0f2dde61d617e8bcd0b62937c192c6015066f8378a71" }, "downloads": -1, "filename": "prom-0.9.10.tar.gz", "has_sig": false, "md5_digest": "378e17d90e4e59db02d6ca1a97ba623a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23037, "upload_time": "2013-10-17T02:30:13", "url": "https://files.pythonhosted.org/packages/22/1c/4f501cf6c2b64628eed1fa94104633542c81cd0a649837a4900613778019/prom-0.9.10.tar.gz" } ], "0.9.100": [ { "comment_text": "", "digests": { "md5": "49ddcfa0171de6ef89e9cbfd7b005552", "sha256": "0224c8e42c895c0ec207651c8d4ad79b0faa58a63ecc0e594b81db3af27618d6" }, "downloads": -1, "filename": "prom-0.9.100.tar.gz", "has_sig": false, "md5_digest": "49ddcfa0171de6ef89e9cbfd7b005552", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69262, "upload_time": "2017-03-24T10:33:40", "url": "https://files.pythonhosted.org/packages/6c/ef/2eaaf4506bec2ee7295247493c4bb59f76c9d596e800b1110cc2c55f35a1/prom-0.9.100.tar.gz" } ], "0.9.101": [ { "comment_text": "", "digests": { "md5": "48f26dc8b2c6746c6d3c684130344944", "sha256": "675e8f2184706aeecd3d91f212b08dd7b29786846119ee8b6a992b2be56d1b49" }, "downloads": -1, "filename": "prom-0.9.101.tar.gz", "has_sig": false, "md5_digest": "48f26dc8b2c6746c6d3c684130344944", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69326, "upload_time": "2017-03-27T21:19:00", "url": "https://files.pythonhosted.org/packages/17/33/d6aea768d431476dd008c8050e77c5eed014fb2bf84a1d23974f8c360020/prom-0.9.101.tar.gz" } ], "0.9.102": [ { "comment_text": "", "digests": { "md5": "5eab1f8a96e4b505cb1828540ddea3a4", "sha256": "196396c4b43612b4ab15fffe8f61458b577361fc64018243052c2c700ea7964e" }, "downloads": -1, "filename": "prom-0.9.102.tar.gz", "has_sig": false, "md5_digest": "5eab1f8a96e4b505cb1828540ddea3a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69443, "upload_time": "2017-05-17T20:36:46", "url": "https://files.pythonhosted.org/packages/c5/aa/28464d7c7068752a4408458fe1d06d9f1888b449f77dc3c6030e84faf13f/prom-0.9.102.tar.gz" } ], "0.9.103": [ { "comment_text": "", "digests": { "md5": "3777eef10cac0e409ede57149cdd9edf", "sha256": "35d1a3fad956df31f77d8d954e9a1b8d90eedc0e9e9402d88c315f6a0af122eb" }, "downloads": -1, "filename": "prom-0.9.103.tar.gz", "has_sig": false, "md5_digest": "3777eef10cac0e409ede57149cdd9edf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69689, "upload_time": "2017-05-23T00:13:36", "url": "https://files.pythonhosted.org/packages/3c/24/39364ee734c8bdb594cc72fb42ba78c852c0e9dfe95bd729f3a59d9def01/prom-0.9.103.tar.gz" } ], "0.9.18": [ { "comment_text": "", "digests": { "md5": "1e2423e6f924a2e7761f1fc4fcec6551", "sha256": "ac36fee6b33e1d012638c667ddbb6126cc021e2ea19ebe10da8c694f7471d283" }, "downloads": -1, "filename": "prom-0.9.18.tar.gz", "has_sig": false, "md5_digest": "1e2423e6f924a2e7761f1fc4fcec6551", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24839, "upload_time": "2013-12-04T00:21:22", "url": "https://files.pythonhosted.org/packages/2d/7e/817e9a0a6dc10c6862db1399da12eead7133babf817746663b2bf158be58/prom-0.9.18.tar.gz" } ], "0.9.19": [ { "comment_text": "", "digests": { "md5": "cf45b4bb09bc33be9d62eaed8661b374", "sha256": "f78598aac6f27642aec4d0d4fa7a4dfc4328dd764b51820b3183f4c6c90304a2" }, "downloads": -1, "filename": "prom-0.9.19.tar.gz", "has_sig": false, "md5_digest": "cf45b4bb09bc33be9d62eaed8661b374", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25034, "upload_time": "2013-12-11T22:48:51", "url": "https://files.pythonhosted.org/packages/f6/60/e63f30820fd94b39c9fe813265d50221eebd2fd9358ef7cac3e38151581c/prom-0.9.19.tar.gz" } ], "0.9.22": [ { "comment_text": "", "digests": { "md5": "0f1ddec0c9b8227bb4e926d5eabbf0e6", "sha256": "a754eeaf25666ed326ad397586278aa1d66d76c99a4d4532c6400a9e84c5a892" }, "downloads": -1, "filename": "prom-0.9.22.tar.gz", "has_sig": false, "md5_digest": "0f1ddec0c9b8227bb4e926d5eabbf0e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26287, "upload_time": "2014-01-09T02:18:05", "url": "https://files.pythonhosted.org/packages/93/b3/4f3c12f8703dff84a101b5ab63b5999c93141b779d7424025bb30b95706f/prom-0.9.22.tar.gz" } ], "0.9.23": [ { "comment_text": "", "digests": { "md5": "4b8451ff9c8c02b27f59e7b8878d6619", "sha256": "6140b5ecab9e5a3572542e1f030e82d2c8c935c0c3bf80a56184c9b5c71f16af" }, "downloads": -1, "filename": "prom-0.9.23.tar.gz", "has_sig": false, "md5_digest": "4b8451ff9c8c02b27f59e7b8878d6619", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26229, "upload_time": "2014-01-16T22:40:33", "url": "https://files.pythonhosted.org/packages/fb/20/291e88dc4b61e467ecfb2732d7826b3ea3c086e3cfaf98d99c8e20be063e/prom-0.9.23.tar.gz" } ], "0.9.24": [ { "comment_text": "", "digests": { "md5": "fb6df1b5d21f475936b0cfb47a5b452b", "sha256": "5696177a28dd89858c0c0a60ab4c1ee1bc71d2289db3b472a6c57d80a5a08d3a" }, "downloads": -1, "filename": "prom-0.9.24.tar.gz", "has_sig": false, "md5_digest": "fb6df1b5d21f475936b0cfb47a5b452b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26427, "upload_time": "2014-01-17T00:03:09", "url": "https://files.pythonhosted.org/packages/e7/ac/e0cfab9559fa65c8128e4f5ee5863ed570fe921fee25eee717a9c964be14/prom-0.9.24.tar.gz" } ], "0.9.25": [ { "comment_text": "", "digests": { "md5": "299174238bc2c87f5ee065bd7054b1f2", "sha256": "30bce7f7f5765281c6fb7d956dcd7ed64526b604b3419b468607f527c4c90092" }, "downloads": -1, "filename": "prom-0.9.25.tar.gz", "has_sig": false, "md5_digest": "299174238bc2c87f5ee065bd7054b1f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26674, "upload_time": "2014-01-19T22:44:28", "url": "https://files.pythonhosted.org/packages/3d/ed/6a97c0e626dcf544786cbf10a3544ad4de864238cb2f40841dcf4a4a11e4/prom-0.9.25.tar.gz" } ], "0.9.26": [ { "comment_text": "", "digests": { "md5": "8f237e335dd96aac7bc86612872c5d58", "sha256": "9c1a93fd7396321a6e9b71c1b90e459607777dcdfa5e909ba6ab01a7e07a0279" }, "downloads": -1, "filename": "prom-0.9.26.tar.gz", "has_sig": false, "md5_digest": "8f237e335dd96aac7bc86612872c5d58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26747, "upload_time": "2014-01-23T23:32:21", "url": "https://files.pythonhosted.org/packages/69/ee/abc1382a8024be40581e98cabfe8fd675c5a152ef90a3efee106a4421531/prom-0.9.26.tar.gz" } ], "0.9.27": [ { "comment_text": "", "digests": { "md5": "1541256b27dfae11acdd49929f31f114", "sha256": "83a0ae673c5a3bba412ef9c8c5362824c5ad4aa274228b0b2370aeeb24045e50" }, "downloads": -1, "filename": "prom-0.9.27.tar.gz", "has_sig": false, "md5_digest": "1541256b27dfae11acdd49929f31f114", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27073, "upload_time": "2014-02-12T01:17:49", "url": "https://files.pythonhosted.org/packages/e9/e1/29a8f24851de67958fb686955abca1333ccaf1c393a0f05ec1e17c73353c/prom-0.9.27.tar.gz" } ], "0.9.29": [ { "comment_text": "", "digests": { "md5": "f2c52a7ce5496ef24060ec59602f8cb3", "sha256": "a14f5342a9927a7de9e51cad2b951ff98d57fd0ee2f3c6c48a9083f994405ba5" }, "downloads": -1, "filename": "prom-0.9.29.tar.gz", "has_sig": false, "md5_digest": "f2c52a7ce5496ef24060ec59602f8cb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28319, "upload_time": "2014-03-11T02:15:36", "url": "https://files.pythonhosted.org/packages/05/1b/31b372de258eb44b6797b7b9d3be146125c8355c2488fe3b7173c1883864/prom-0.9.29.tar.gz" } ], "0.9.30": [ { "comment_text": "", "digests": { "md5": "dd7fc070119c1b55bb3d899e7a5ce54f", "sha256": "9ad86d36390dad4fe696e417e5ec1f30ef9640c4a27e355c063f109234dd5548" }, "downloads": -1, "filename": "prom-0.9.30.tar.gz", "has_sig": false, "md5_digest": "dd7fc070119c1b55bb3d899e7a5ce54f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28326, "upload_time": "2014-03-13T01:12:26", "url": "https://files.pythonhosted.org/packages/70/56/a803c9e1fa62ac1e37b88a4352ab70e20df271a01b65b6ac3787976c706b/prom-0.9.30.tar.gz" } ], "0.9.31": [ { "comment_text": "", "digests": { "md5": "d6bbd23a5cecf7f4b974e04c434f9111", "sha256": "742662080c1130fb4ec8fb6bf5a20381b7569a171caf564a84180e96a72bcb43" }, "downloads": -1, "filename": "prom-0.9.31.tar.gz", "has_sig": false, "md5_digest": "d6bbd23a5cecf7f4b974e04c434f9111", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28400, "upload_time": "2014-03-25T02:55:32", "url": "https://files.pythonhosted.org/packages/ca/aa/5bf961a220c4cd3b4c5caf864054ab8eed3a750159af2599bbacd7f9f70b/prom-0.9.31.tar.gz" } ], "0.9.32": [ { "comment_text": "", "digests": { "md5": "87405583cbfb8dd42ef90257c7fb24a6", "sha256": "6f05470a1ea7000a814fe79389784949b436ebe733b21341323838a144d7ed04" }, "downloads": -1, "filename": "prom-0.9.32.tar.gz", "has_sig": false, "md5_digest": "87405583cbfb8dd42ef90257c7fb24a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28477, "upload_time": "2014-04-18T01:25:48", "url": "https://files.pythonhosted.org/packages/4a/c8/b770d5e37cbb9a874e3c28eff363ded8bc3b86541b0076f70d1940644f6c/prom-0.9.32.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "5a14c55d7cefc87fad3c5753de57d366", "sha256": "af2093ad5647b0daabaaaa97720f21813525ae1ac8aed7630ec7df6728ec6668" }, "downloads": -1, "filename": "prom-0.9.5.tar.gz", "has_sig": false, "md5_digest": "5a14c55d7cefc87fad3c5753de57d366", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31013, "upload_time": "2014-04-30T02:04:45", "url": "https://files.pythonhosted.org/packages/fa/f4/cbf16ac9296b2a6bd1eb4dbd0e122e51aae72a27f4fe1a8d90db2a5f5625/prom-0.9.5.tar.gz" } ], "0.9.50": [ { "comment_text": "", "digests": { "md5": "da9be6927b862f2edc4fa40abd92a79b", "sha256": "e89e58f52586285e4cd5ec069c94790ceba0908c596e32f3023e422c66ee5a17" }, "downloads": -1, "filename": "prom-0.9.50.tar.gz", "has_sig": false, "md5_digest": "da9be6927b862f2edc4fa40abd92a79b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31011, "upload_time": "2014-04-30T02:22:30", "url": "https://files.pythonhosted.org/packages/60/49/2e6361d8e8ae1d5abe2b6a1b68ff6f15c612242714d1b3eb8f1c2e63c5b2/prom-0.9.50.tar.gz" } ], "0.9.51": [ { "comment_text": "", "digests": { "md5": "e3285490d6b3c5d6d1e4aeb15ad86500", "sha256": "678a373a59a555fd786dc01ba7e6a33d466d16b2efd2d02a26e0da37b420019c" }, "downloads": -1, "filename": "prom-0.9.51.tar.gz", "has_sig": false, "md5_digest": "e3285490d6b3c5d6d1e4aeb15ad86500", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31479, "upload_time": "2014-05-12T22:32:21", "url": "https://files.pythonhosted.org/packages/35/ef/b9a92bc7f512382b7b97f43809d2f258916b47d42a4056a3598a9a28c22a/prom-0.9.51.tar.gz" } ], "0.9.52": [ { "comment_text": "", "digests": { "md5": "4030ec208de915377c02890e1a76a545", "sha256": "af05c7cd8457501b050aa67cec4836362be59f3db729023dc35d0a0750dd6ed2" }, "downloads": -1, "filename": "prom-0.9.52.tar.gz", "has_sig": false, "md5_digest": "4030ec208de915377c02890e1a76a545", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31469, "upload_time": "2014-05-13T00:29:06", "url": "https://files.pythonhosted.org/packages/86/31/78d596de551d5ed6b5596592ef13bfe270cb6a52582418831bced5a11bda/prom-0.9.52.tar.gz" } ], "0.9.53": [ { "comment_text": "", "digests": { "md5": "86afd62a0c2df392d9a5bdff59c57901", "sha256": "e335e9ab2cd92bfadf08413d1aaab215a0ac9769bea04a028c304eeaa1866c88" }, "downloads": -1, "filename": "prom-0.9.53.tar.gz", "has_sig": false, "md5_digest": "86afd62a0c2df392d9a5bdff59c57901", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31505, "upload_time": "2014-05-13T02:51:07", "url": "https://files.pythonhosted.org/packages/83/17/cc688a848d2e0b739e0f2637c1e3e27c034ba6c9e79cbb55e340aa6d5a0d/prom-0.9.53.tar.gz" } ], "0.9.54": [ { "comment_text": "", "digests": { "md5": "0d412bc542b906b94131b733ce3478cb", "sha256": "9c32074a5a127ccfad631271f1d1090c2e43f93273f21c97f4187a66bdd28bb6" }, "downloads": -1, "filename": "prom-0.9.54.tar.gz", "has_sig": false, "md5_digest": "0d412bc542b906b94131b733ce3478cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31575, "upload_time": "2014-05-19T22:38:29", "url": "https://files.pythonhosted.org/packages/8f/fb/53c5ce1311a18b19770027139c0f85292a14cc3de5fcc12790b5ef9483e6/prom-0.9.54.tar.gz" } ], "0.9.55": [ { "comment_text": "", "digests": { "md5": "d5414622376652d9c16d5160ee1ea2f7", "sha256": "5faa2d758020c7d3b9405e05ab4a7fea159239e7b1dc7bd714c62d9ad613dcb5" }, "downloads": -1, "filename": "prom-0.9.55.tar.gz", "has_sig": false, "md5_digest": "d5414622376652d9c16d5160ee1ea2f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31865, "upload_time": "2014-06-27T03:33:12", "url": "https://files.pythonhosted.org/packages/02/e5/c0c383190f0bb4b94a627a9cc043dd1caf54dde5df9ac192d7c152c13696/prom-0.9.55.tar.gz" } ], "0.9.56": [ { "comment_text": "", "digests": { "md5": "c2f106ffa1d19c84a98dd141e49a4f54", "sha256": "9fa24bcc25ef3f0025aca5d753c5585d1b8586fdd38aa7ed7bc2f1e1e8017595" }, "downloads": -1, "filename": "prom-0.9.56.tar.gz", "has_sig": false, "md5_digest": "c2f106ffa1d19c84a98dd141e49a4f54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31870, "upload_time": "2014-07-09T00:29:25", "url": "https://files.pythonhosted.org/packages/2d/7f/bd488ce0ba7b951e705595afe0f469029141e86512800ddaebd41d8dabe5/prom-0.9.56.tar.gz" } ], "0.9.57": [ { "comment_text": "", "digests": { "md5": "d23f9dd9b7b2446c2a9390dee5da708c", "sha256": "f2bb3d940889fd0a95457c94e3c5d8b1117f3d913db1e769cd22f05b07798332" }, "downloads": -1, "filename": "prom-0.9.57.tar.gz", "has_sig": false, "md5_digest": "d23f9dd9b7b2446c2a9390dee5da708c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31956, "upload_time": "2014-07-09T02:59:54", "url": "https://files.pythonhosted.org/packages/fb/8a/aefd2173077145019a643756617c23b768fba6765bd62f4f1c957628e7a7/prom-0.9.57.tar.gz" } ], "0.9.60": [ { "comment_text": "", "digests": { "md5": "a8620f35819a74ee8613128d619f7aa1", "sha256": "e9c87e60a402d66e0a64438d4d4033975a9fcdac0d34f67ee993dc51296c0d1f" }, "downloads": -1, "filename": "prom-0.9.60.tar.gz", "has_sig": false, "md5_digest": "a8620f35819a74ee8613128d619f7aa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33226, "upload_time": "2014-08-15T01:15:03", "url": "https://files.pythonhosted.org/packages/3d/2f/de86aa76767f7cae51e18a886ed2745abd4e5015538b43342726147e9943/prom-0.9.60.tar.gz" } ], "0.9.61": [ { "comment_text": "", "digests": { "md5": "75b6a22a4fad965c6802fb9ba2ef5874", "sha256": "e572fdd5278782f87c18362588439b6ca6a8aeaf2342c57663d7fee153cce236" }, "downloads": -1, "filename": "prom-0.9.61.tar.gz", "has_sig": false, "md5_digest": "75b6a22a4fad965c6802fb9ba2ef5874", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33617, "upload_time": "2014-09-08T00:48:05", "url": "https://files.pythonhosted.org/packages/e2/5c/1d3e9c935722a00ad7dcd24b6b0e5b4ba9d42399b3125f0c3e673385ba88/prom-0.9.61.tar.gz" } ], "0.9.62": [ { "comment_text": "", "digests": { "md5": "e90cf892e3205094be6e5b09496de1e1", "sha256": "7fe6c264539a5d970255c0f07b6f3425ba8cf8e85c106fe729cb1c8a85003511" }, "downloads": -1, "filename": "prom-0.9.62.tar.gz", "has_sig": false, "md5_digest": "e90cf892e3205094be6e5b09496de1e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33632, "upload_time": "2014-09-09T07:08:23", "url": "https://files.pythonhosted.org/packages/14/6f/be3bef994bcf97f3845e78b80280375bd29479743aa3dd6bdc53b2fae5fe/prom-0.9.62.tar.gz" } ], "0.9.64": [ { "comment_text": "", "digests": { "md5": "9f07f411090ed26b6ac05f856d0b91c9", "sha256": "938c1c4a764a32d988a4bbdb1ffccac39f914cf929320fc642c1289b4fadef57" }, "downloads": -1, "filename": "prom-0.9.64.tar.gz", "has_sig": false, "md5_digest": "9f07f411090ed26b6ac05f856d0b91c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33871, "upload_time": "2014-09-16T00:21:13", "url": "https://files.pythonhosted.org/packages/86/ce/64cedc6b20e36248de890a0c7076729970260c9948b213201af080d3bcef/prom-0.9.64.tar.gz" } ], "0.9.66": [ { "comment_text": "", "digests": { "md5": "3e757ca3a1a78fb79d4ba2c11840d2e2", "sha256": "234b34bc02fb4f0b6720c1886b7a7b0533f26499d986dfccc7f466cb8be4845b" }, "downloads": -1, "filename": "prom-0.9.66.tar.gz", "has_sig": false, "md5_digest": "3e757ca3a1a78fb79d4ba2c11840d2e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34792, "upload_time": "2015-05-19T23:58:53", "url": "https://files.pythonhosted.org/packages/0b/2f/1906d5ef85d8852ef7d734dab08d1560ab2c0f99dfdce3ac51fdf839e44a/prom-0.9.66.tar.gz" } ], "0.9.67": [ { "comment_text": "", "digests": { "md5": "1683483c2bd06c52a93e1c0dd4d81ec1", "sha256": "00ee6c82f7d45ae2fd3f57072a936b057ba4eb7f3ffd435f8594df4fa7f65f5d" }, "downloads": -1, "filename": "prom-0.9.67.tar.gz", "has_sig": false, "md5_digest": "1683483c2bd06c52a93e1c0dd4d81ec1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35051, "upload_time": "2015-05-24T00:07:56", "url": "https://files.pythonhosted.org/packages/2b/64/63a9a28168d86deaf5255d87f2f0bdf9663a8c7ea19e1860261013d13ab3/prom-0.9.67.tar.gz" } ], "0.9.77": [ { "comment_text": "", "digests": { "md5": "5a89e10432713f57382bc7b6cc0e4d05", "sha256": "523991949490dde1e624c315876fb4f4df0390c251f2c6b30767d7b36d51a198" }, "downloads": -1, "filename": "prom-0.9.77.tar.gz", "has_sig": false, "md5_digest": "5a89e10432713f57382bc7b6cc0e4d05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34230, "upload_time": "2016-02-16T23:09:06", "url": "https://files.pythonhosted.org/packages/9c/73/14a4f72dd0b8c0d5314423cf7d35b5851698064716e0b3d40fb4354021ce/prom-0.9.77.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "e605e26bfd127479e5395f2636084b64", "sha256": "4b4a144e5cd63b9bca0873d3aee94e5c16655fe0507601b5038ea50e22342e13" }, "downloads": -1, "filename": "prom-0.9.8.tar.gz", "has_sig": false, "md5_digest": "e605e26bfd127479e5395f2636084b64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22933, "upload_time": "2013-10-14T23:28:58", "url": "https://files.pythonhosted.org/packages/83/9f/396d32cb9a541247abe2571ee3634a3d7ba5f4d9909ea6dc1a844fb2ff24/prom-0.9.8.tar.gz" } ], "0.9.84": [ { "comment_text": "", "digests": { "md5": "db863f6137d8306defa5688ad2387253", "sha256": "60fdfc37fbea058b6908d5ab1d8d5e2cf0bf1283cecca9d169bfa382cbac4f70" }, "downloads": -1, "filename": "prom-0.9.84.tar.gz", "has_sig": false, "md5_digest": "db863f6137d8306defa5688ad2387253", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36792, "upload_time": "2016-03-28T20:43:47", "url": "https://files.pythonhosted.org/packages/d2/1e/eebe88a178310b0271e72c3e96e33a824f7382c258b26ba4509166c03824/prom-0.9.84.tar.gz" } ], "0.9.85": [ { "comment_text": "", "digests": { "md5": "226f85e9b52ff75010b4dbe10e26bd00", "sha256": "f04743d7482630ecc93f7d385ce795d67a8501f30464bc4cd24ca7b4dc29a90f" }, "downloads": -1, "filename": "prom-0.9.85.tar.gz", "has_sig": false, "md5_digest": "226f85e9b52ff75010b4dbe10e26bd00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38283, "upload_time": "2016-04-15T02:35:03", "url": "https://files.pythonhosted.org/packages/b6/7f/ff699a1495a41e6c4650200af38c54201a235a841b9880bda73cf18acef7/prom-0.9.85.tar.gz" } ], "0.9.86": [ { "comment_text": "", "digests": { "md5": "93d8377df40f39f04eacae6a6aa4c6a0", "sha256": "7c79096a7bbd68fa3402de1f34f89430c8b171b40bef0205d51aed04e05818b8" }, "downloads": -1, "filename": "prom-0.9.86.tar.gz", "has_sig": false, "md5_digest": "93d8377df40f39f04eacae6a6aa4c6a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38476, "upload_time": "2016-04-16T02:01:14", "url": "https://files.pythonhosted.org/packages/b8/3c/379f5cd39132af08e3d4e78edaeae7501907a4ee14cc6d39f7ceabea7110/prom-0.9.86.tar.gz" } ], "0.9.87": [ { "comment_text": "", "digests": { "md5": "6e7d9c6fad1a924d99f67ddc47966422", "sha256": "75cb45f656ce89d0252e0627f29b02906f7c4aa32c7d06dd9027ec22f5d087dc" }, "downloads": -1, "filename": "prom-0.9.87.tar.gz", "has_sig": false, "md5_digest": "6e7d9c6fad1a924d99f67ddc47966422", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39021, "upload_time": "2016-05-11T01:14:27", "url": "https://files.pythonhosted.org/packages/01/a5/cbf7d4965c5b2aece11ae5a7775d10d994ff216342238468a8e555c536dc/prom-0.9.87.tar.gz" } ], "0.9.90": [ { "comment_text": "", "digests": { "md5": "f518d1137acbf39438a3bd236968888c", "sha256": "ebfe0d812ad07e591b989d2ba55d241e953faa7f3e886dea9e1e02b1a7d18ce8" }, "downloads": -1, "filename": "prom-0.9.90.tar.gz", "has_sig": false, "md5_digest": "f518d1137acbf39438a3bd236968888c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39142, "upload_time": "2016-08-24T02:37:53", "url": "https://files.pythonhosted.org/packages/8d/46/5a96f2794bdcedbb0bd900b3ee42e6bd148ccf5dbfc31a84487adfbe83c7/prom-0.9.90.tar.gz" } ], "0.9.91": [ { "comment_text": "", "digests": { "md5": "0eb4989a2a2c42086a8966015c597cc6", "sha256": "ac087a9035056b9d70dd7f12af5a2422af6ccce63cbdf60996e16f1f70ea07d3" }, "downloads": -1, "filename": "prom-0.9.91.tar.gz", "has_sig": false, "md5_digest": "0eb4989a2a2c42086a8966015c597cc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39804, "upload_time": "2016-09-04T22:06:29", "url": "https://files.pythonhosted.org/packages/fe/84/18612fb94581da41e9d234c7ab81b4d0372ed7f7645739dfb952ce85f1ae/prom-0.9.91.tar.gz" } ], "0.9.93": [ { "comment_text": "", "digests": { "md5": "91ed8a372f17c2ef8fc214221be1f508", "sha256": "a21add0a3c2f3126aca4be4041c10aedcd56119dbd37cd8708d79053226b0bec" }, "downloads": -1, "filename": "prom-0.9.93.tar.gz", "has_sig": false, "md5_digest": "91ed8a372f17c2ef8fc214221be1f508", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40801, "upload_time": "2016-09-16T08:00:32", "url": "https://files.pythonhosted.org/packages/34/b9/589cdf980386ff8453566b1803d676e16f181de82e351e8751ded9d87e61/prom-0.9.93.tar.gz" } ], "0.9.95": [ { "comment_text": "", "digests": { "md5": "6a11f449c0d675dfc7fc66b8fd74b643", "sha256": "345fd17e1539efe40491726c9b45aedb14ff744831609978c4f7076c46a774a0" }, "downloads": -1, "filename": "prom-0.9.95.tar.gz", "has_sig": false, "md5_digest": "6a11f449c0d675dfc7fc66b8fd74b643", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41706, "upload_time": "2017-02-02T09:40:21", "url": "https://files.pythonhosted.org/packages/3d/39/37820f7c1f739d65b842bceec72308bb336c0d22bdbdc2be1cdd7e745c54/prom-0.9.95.tar.gz" } ], "0.9.97": [ { "comment_text": "", "digests": { "md5": "1079966c06de8857a0783f1f9545b5c4", "sha256": "330ef558e5f468a77134608f38d095fc2494aedf8396741e7e9e4288466f49db" }, "downloads": -1, "filename": "prom-0.9.97.tar.gz", "has_sig": false, "md5_digest": "1079966c06de8857a0783f1f9545b5c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68519, "upload_time": "2017-02-20T09:06:34", "url": "https://files.pythonhosted.org/packages/01/b5/9d7e6c1c9d4b718bdd2d05cfe05fff8356d53692036751aac161cc47f94c/prom-0.9.97.tar.gz" } ], "0.9.98": [ { "comment_text": "", "digests": { "md5": "2421ca42ca4c6c4fabb83e4e113e99e3", "sha256": "cbfe988afa51855ce7bb283b8227cd729afbfdac4e02ed1c86203c02b2fa565c" }, "downloads": -1, "filename": "prom-0.9.98.tar.gz", "has_sig": false, "md5_digest": "2421ca42ca4c6c4fabb83e4e113e99e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68519, "upload_time": "2017-02-21T16:36:25", "url": "https://files.pythonhosted.org/packages/be/05/d8169e61e4594c2e4689c6b0cc5283356a0d3091bbf514ebceb8e59b93d9/prom-0.9.98.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "9cb4d2ce300e37e1a19ea51ca1a2da4a", "sha256": "170a9b36628643c7fc7244477bd310e37cb27511f37c9fde1d9bf8d5fd0517e3" }, "downloads": -1, "filename": "prom-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9cb4d2ce300e37e1a19ea51ca1a2da4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56277, "upload_time": "2019-10-07T21:03:31", "url": "https://files.pythonhosted.org/packages/38/e4/752357898c51c5dd571e2ff8eca8d511a2d8d3ab0f847e06f45f4e2b7021/prom-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "511fb487e21064b958e0d1930b547dce", "sha256": "cbe8fa1e192506e3556c62e64eb107af310cbe0fa0cca43458ecac769922d1ac" }, "downloads": -1, "filename": "prom-1.0.1.tar.gz", "has_sig": false, "md5_digest": "511fb487e21064b958e0d1930b547dce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55318, "upload_time": "2019-10-07T21:19:02", "url": "https://files.pythonhosted.org/packages/81/1b/2edb5cac845d5cc4ea766291bd15b147989fa2d42d88810d0bfdf8f6d56e/prom-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "511fb487e21064b958e0d1930b547dce", "sha256": "cbe8fa1e192506e3556c62e64eb107af310cbe0fa0cca43458ecac769922d1ac" }, "downloads": -1, "filename": "prom-1.0.1.tar.gz", "has_sig": false, "md5_digest": "511fb487e21064b958e0d1930b547dce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55318, "upload_time": "2019-10-07T21:19:02", "url": "https://files.pythonhosted.org/packages/81/1b/2edb5cac845d5cc4ea766291bd15b147989fa2d42d88810d0bfdf8f6d56e/prom-1.0.1.tar.gz" } ] }