{ "info": { "author": "The RIPE Atlas Team", "author_email": "atlas@ripe.net", "bugtrack_url": null, "classifiers": [ "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP" ], "description": "RIPE Atlas Sagan |Build Status| |Documentation|\n===============================================\n\nA parsing library for RIPE Atlas measurement results\n\nWhy this exists\n---------------\n\nRIPE Atlas generates a **lot** of data, and the format of that data changes over\ntime. Often you want to do something simple like fetch the median RTT for each\nmeasurement result between date ``X`` and date ``Y``. Unfortunately, there are\ndozens of edge cases to account for while parsing the JSON, like the format of\nerrors and firmware upgrades that changed the format entirely.\n\nTo make this easier for our users (and for ourselves), we wrote an easy to use\nparser that's smart enough to figure out the best course of action for each\nresult, and return to you a useful, native Python object.\n\nHow to install\n--------------\n\nThe stable version should always be in PyPi, so you can install it with ``pip``:\n\n.. code:: bash\n\n $ pip install ripe.atlas.sagan\n\nBetter yet, make sure you get ujson and sphinx installed with it:\n\n.. code:: bash\n\n $ pip install ripe.atlas.sagan[fast,doc]\n\nTroubleshooting\n~~~~~~~~~~~~~~~\n\nSome setups (like MacOS) have trouble with building the dependencies required\nfor reading SSL certificates. If you don't care about SSL stuff and only want to\nuse sagan to say, parse traceroute or DNS results, then you can do the following:\n\n.. code:: bash\n\n $ SAGAN_WITHOUT_SSL=1 pip install ripe.atlas.sagan\n\nQuickstart: How To Use It\n-------------------------\n\nYou can parse a result in a few ways. You can just pass the JSON-encoded string:\n\n.. code:: python\n\n from ripe.atlas.sagan import PingResult\n\n my_result = PingResult(\"\")\n\n print(my_result.rtt_median)\n 123.456\n\n print(my_result.af)\n 6\n\nYou can do the JSON-decoding yourself:\n\n.. code:: python\n\n from ripe.atlas.sagan import PingResult\n\n my_result = PingResult(\n json.loads(\"\")\n )\n\n print(my_result.rtt_median)\n 123.456\n\n print(my_result.af)\n 6\n\nYou can let the parser guess the right type for you, though this incurs a small\nperformance penalty:\n\n.. code:: python\n\n from ripe.atlas.sagan import Result\n\n my_result = Result.get(\"\")\n\n print(my_result.rtt_median)\n 123.456\n\n print(my_result.af)\n 6\n\nWhat it supports\n----------------\n\nEssentially, we tried to support everything. If you pass in a DNS result string,\nthe parser will return a ``DNSResult`` object, which contains a list of\n``Response``'s, each with an ``abuf`` property, as well as all of the\ninformation in that abuf: header, question, answer, etc.\n\n.. code:: python\n\n from ripe.atlas.sagan import DnsResult\n\n my_dns_result = DnsResult(\"\")\n my_dns_result.responses[0].abuf # The entire string\n my_dns_result.responses[0].abuf.header.arcount # Decoded from the abuf\n\nWe do the same sort of thing for SSL measurements, traceroutes, everything. We\ntry to save you the effort of sorting through whatever is in the result.\n\nWhich attributes are supported?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nEvery result type has its own properties, with a few common between all types.\n\nSpecifically, these attributes exist on all ``*Result`` objects:\n\n- ``created`` An datetime object of the\n ``timestamp`` field\n- ``measurement_id``\n- ``probe_id``\n- ``firmware`` An integer representing the firmware version\n- ``origin`` The ``from`` attribute in the result\n- ``is_error`` Set to ``True`` if an error was found\n\nAdditionally, each of the result types have their own properties, like\n``packet_size``, ``responses``, ``certificates``, etc. You can take a look at\nthe classes themselves, or just look at the tests if you're curious. But to get\nyou started, here are some examples:\n\n.. code:: python\n\n # Ping\n ping_result.packets_sent # Int\n ping_result.rtt_median # Float, rounded to 3 decimal places\n ping_result.rtt_average # Float, rounded to 3 decimal places\n\n # Traceroute\n traceroute_result.af # 4 or 6\n traceroute_result.total_hops # Int\n traceroute_result.destination_address # An IP address string\n\n # DNS\n dns_result.responses # A list of Response objects\n dns_result.responses[0].response_time # Float, rounded to 3 decimal places\n dns_result.responses[0].headers # A list of Header objects\n dns_result.responses[0].headers[0].nscount # The NSCOUNT value for the first header\n dns_result.responses[0].questions # A list of Question objects\n dns_result.responses[0].questions[0].type # The TYPE value for the first question\n dns_result.responses[0].abuf # The raw, unparsed abuf string\n\n # SSL Certificates\n ssl_result.af # 4 or 6\n ssl_result.certificates # A list of Certificate objects\n ssl_result.certificates[0].checksum # The checksum for the first certificate\n\n # HTTP\n http_result.af # 4 or 6\n http_result.uri # A URL string\n http_result.responses # A list of Response objects\n http_result.responses[0].body_size # The size of the body of the first response\n\n # NTP\n ntp_result.af # 4 or 6\n ntp_result.stratum # Statum id\n ntp_result.version # Version number\n ntp_result.packets[0].final_timestamp # A float representing a high-precision NTP timestamp\n ntp_result.rtt_median # Median value for packets sent & received\n\nWhat it requires\n----------------\n\nAs you might have guessed, with all of this magic going on under the hood, there\nare a few dependencies:\n\n- `cryptography`_ (Optional: see \"Troubleshooting\" above)\n- `python-dateutil`_\n- `pytz`_\n- `IPy`_\n\nAdditionally, we recommend that you also install `ujson`_ as it will speed up\nthe JSON-decoding step considerably, and `sphinx`_ if you intend to build the\ndocumentation files for offline use.\n\nRunning Tests\n-------------\n\nThere's a full battery of tests for all measurement types, so if you've made\nchanges and would like to submit a pull request, please run them (and update\nthem!) before sending your request:\n\n.. code:: bash\n\n $ python setup.py test\n\nYou can also install ``tox`` to test everything in all of the supported Python\nversions:\n\n.. code:: bash\n\n $ pip install tox\n $ tox\n\nFurther Documentation\n---------------------\n\nComplete documentation can always be found on `Read the Docs`_,\nand if you're not online, the project itself contains a ``docs`` directory --\neverything you should need is in there.\n\n\nWho's Responsible for This?\n---------------------------\n\nSagan is actively maintained by the RIPE NCC and primarily developed by `Daniel\nQuinn`_, while the abuf parser is mostly the responsibility of `Philip Homburg`_\nwith an assist from Bert Wijnen and Rene Wilhelm who contributed to the original\nscript. `Andreas Stirkos`_ did the bulk of the work on NTP measurements and\nfixed a few bugs, and big thanks go to `Chris Amin`_, `John Bond`_, and\n`Pier Carlo Chiodi`_ for finding and fixing stuff where they've run into\nproblems.\n\n\nColophon\n--------\n\nBut why \"`Sagan`_\"? The RIPE Atlas team decided to name all of its modules after\nexplorers, and what better name for a parser than that of the man who spent\ndecades reaching out to the public about the wonders of the cosmos?\n\n.. _python-dateutil: https://pypi.python.org/pypi/python-dateutil\n.. _cryptography: https://pypi.python.org/pypi/cryptography\n.. _pytz: https://pypi.python.org/pypi/pytz\n.. _IPy: https://pypi.python.org/pypi/IPy/\n.. _ujson: https://pypi.python.org/pypi/ujson\n.. _sphinx: https://pypi.python.org/pypi/Sphinx\n.. _Read the Docs: http://ripe-atlas-sagan.readthedocs.org/en/latest/\n.. _Daniel Quinn: https://github.com/danielquinn\n.. _Philip Homburg: https://github.com/philiphomburg\n.. _Andreas Stirkos: https://github.com/astrikos\n.. _Chris Amin: https://github.com/chrisamin\n.. _John Bond: https://github.com/b4ldr\n.. _Pier Carlo Chiodi: https://github.com/pierky\n.. _Sagan: https://en.wikipedia.org/wiki/Carl_Sagan\n.. |Build Status| image:: https://travis-ci.org/RIPE-NCC/ripe.atlas.sagan.png?branch=master\n :target: https://travis-ci.org/RIPE-NCC/ripe.atlas.sagan\n.. |Documentation| image:: https://readthedocs.org/projects/ripe-atlas-sagan/badge/?version=latest\n :target: http://ripe-atlas-sagan.readthedocs.org/en/latest/?badge=latest\n :alt: Documentation Status\n\n\nChangelog\n=========\n* 1.3.0\n * abuf.py: error handling for NS records, extended rcode, cookies and client subnets\n* 1.2.2\n * Catch problems parsing SSL certificates\n* 1.2.1\n * Add support for non-DNS names in subjectAltName extensions \n* 1.2\n * Replaced pyOpenSSL with cryptography\n * Added parsing of subjectAltName X509 extension\n* 1.1.11\n * Added first version of WiFi results \n* 1.1.10\n * Added a `parse_all_hops` kwarg to the Traceroute class to tell Sagan to stop parsing Hops and Packets once we have all of the last hop statistics (default=True)\n * Remove dependency on IPy: we were using it for IPv6 canonicalization, but all IPv6 addresses in results should be in canonical form to start with.\n* 1.1.9\n * Removed the `parse_abuf` script because no one was using it and its\n Python3 support was suspect anyway.\n* 1.1.8\n * Handle case where a traceroute result might not have ``dst_addr`` field.\n* 1.1.7\n * Change condition of traceroute's ``last_hop_responded`` flag.\n * Add couple of more traceroute's properties. ``is_success`` and ``last_hop_errors``.\n * Add tests to the package itself.\n* 1.1.6\n * Fix for `Issue #56`_ a case where the ``qbuf`` value wasn't being properly\n captured.\n * Fixed small bug that didn't accurately capture the ``DO`` property from\n the qbuf.\n* 1.1.5\n * We now ignore so-called \"late\" packets in traceroute results. This will\n likely be amended later as future probe firmwares are expected to make\n better use of this value, but until then, Sagan will treat these packets\n as invalid.\n* 1.1.4\n * Added a ``type`` attribute to all ``Result`` subclasses\n * Added support for a lot of new DNS answer types, including ``NSEC``,\n ``PTR``, ``SRV``, and more. These answers do not yet have a complete\n string representation however.\n* 1.1.3\n * Changed the name of ``TracerouteResult.rtt_median`` to\n ``TracerouteResult.last_rtt_median``.\n * Modified the ``DnsResult`` class to allow the \"bubbling up\" of error\n statuses.\n* 1.1.2\n * We skipped this number for some reason :-/\n* 1.1.1\n * Fixed a `string representation bug`_ found by `iortiz`_\n* 1.1.0\n * **Breaking Change**: the ``Authority`` and ``Additional`` classes were\n removed, replaced with the appropriate answer types. For the most part,\n this change should be invisible, as the common properties are the same,\n but if you were testing code against these class types, you should\n consider this a breaking change.\n * **Breaking Change**: The ``__str__`` format for DNS ``RrsigAnswer`` to\n conform the output of a typical ``dig`` binary.\n * Added ``__str__`` definitions to DNS answer classes for use with the\n toolkit.\n * In an effort to make Sagan (along with Cousteau and the toolkit) more\n portable, we dropped the requirement for the ``arrow`` package.\n* 1.0.0\n * 1.0! w00t!\n * **Breaking Change**: the ``data`` property of the ``TxtAnswer`` class was\n changed from a string to a list of strings. This is a correction from\n our own past deviation from the RFC, so we thought it best to conform as\n part of the move to 1.0.0\n * Fixed a bug where non-ascii characters in DNS TXT answers resulted in an\n exception.\n* 0.8.2\n * Fixed a bug related to non-ascii characters in SSL certificate data.\n * Added a wrapper for json loaders to handle differences between ujson and\n the default json module.\n* 0.8.1\n * Minor fix to make all ``Result`` objects properly JSON serialisable.\n* 0.8.0\n * Added `iortiz`_'s patch for flags and ``flags``\n and ``sections`` properties on DNS ``Answer`` objects.\n* 0.7.1\n * Changed ``README.md`` to ``README.rst`` to play nice with pypi.\n* 0.7\n * Added `pierky`_'s new ``RRSigAnswer`` class to\n the dns parser.\n* 0.6.3\n * Fixed a bug in how Sagan deals with inappropriate firmware versions\n* 0.6.2\n * Added `pierky`_'s fix to fix AD and CD flags\n parsing in DNS Header\n* 0.6.1\n * Added ``rtt_min``, ``rtt_max``, ``offset_min``, and ``offset_max`` to\n ``NTPResult``\n* 0.6.0\n * Support for NTP measurements\n * Fixes for how we calculate median values\n * Smarter setup.py\n* 0.5.0\n * Complete Python3 support!\n* 0.4.0\n * Added better Python3 support. Tests all pass now for ping, traceroute,\n ssl, and http measurements.\n * Modified traceroute results to make use of ``destination_ip_responded``\n and ``last_hop_responded``, deprecating ``target_responded``. See the\n docs for details.\n* 0.3.0\n * Added support for making use of some of the pre-calculated values in DNS\n measurements so you don't have to parse the abuf if you don't need it.\n * Fixed a bug in the abuf parser where a variable was being referenced by\n never defined.\n * Cleaned up some of the abuf parser to better conform to pep8.\n* 0.2.8\n * Fixed a bug where DNS ``TXT`` results with class ``IN`` were missing a\n ``.data`` value.\n * Fixed a problem in the SSL unit tests where ``\\n`` was being\n misinterpreted.\n* 0.2.7\n * Made abuf more robust in dealing with truncation.\n* 0.2.6\n * Replaced ``SslResult.get_checksum_chain()`` with the\n ``SslResult.checksum_chain`` property.\n * Added support for catching results with an ``err`` property as an actual\n error.\n* 0.2.5\n * Fixed a bug in how the ``on_error`` and ``on_malformation`` preferences\n weren't being passed down into the subcomponents of the results.\n* 0.2.4\n * Support for ``seconds_since_sync`` across all measurement types\n* 0.2.3\n * \"Treat a missing Type value in a DNS result as a malformation\" (Issue #36)\n* 0.2.2\n * Minor bugfixes\n* 0.2.1\n * Added a ``median_rtt`` value to traceroute ``Hop`` objects.\n * Smarter and more consistent error handling in traceroute and HTTP\n results.\n * Added an ``error_message`` property to all objects that is set to ``None``\n by default.\n* 0.2.0\n * Totally reworked error and malformation handling. We now differentiate\n between a result (or portion thereof) being malformed (and therefore\n unparsable) and simply containing an error such as a timeout. Look for\n an ``is_error`` property or an ``is_malformed`` property on every object\n to check for it, or simply pass ``on_malformation=Result.ACTION_FAIL`` if\n you'd prefer things to explode with an exception. See the documentation\n for more details\n * Added lazy-loading features for parsing abuf and qbuf values out of DNS\n results.\n * Removed the deprecated properties from ``dns.Response``. You must now\n access values like ``edns0`` from ``dns.Response.abuf.edns0``.\n * More edge cases have been found and accommodated.\n* 0.1.15\n * Added a bunch of abuf parsing features from\n `b4ldr`_ with some help from\n `phicoh`_.\n* 0.1.14\n * Fixed the deprecation warnings in ``DnsResult`` to point to the right\n place.\n* 0.1.13\n * Better handling of ``DNSResult`` errors\n * Rearranged the way abufs were handled in the ``DnsResult`` class to make\n way for ``qbuf`` values as well. The old method of accessing ``header``,\n ``answers``, ``questions``, etc is still available via ``Response``, but\n this will go away when we move to 0.2. Deprecation warnings are in place.\n* 0.1.12\n * Smarter code for checking whether the target was reached in\n ``TracerouteResults``.\n * We now handle the ``destination_option_size`` and\n ``hop_by_hop_option_size`` values in ``TracerouteResult``.\n * Extended support for ICMP header info in traceroute ``Hop`` class by\n introducing a new ``IcmpHeader`` class.\n* 0.1.8\n * Broader support for SSL checksums. We now make use of ``md5`` and\n ``sha1``, as well as the original ``sha256``.\n\n.. _Issue #56: https://github.com/RIPE-NCC/ripe.atlas.sagan/issues/56\n.. _string representation bug: https://github.com/RIPE-NCC/ripe-atlas-tools/issues/1\n.. _b4ldr: https://github.com/b4ldr\n.. _phicoh: https://github.com/phicoh\n.. _iortiz: https://github.com/iortiz\n.. _pierky: https://github.com/pierky\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/RIPE-NCC/ripe.atlas.sagan", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/RIPE-NCC/ripe.atlas.sagan", "keywords": "", "license": "GPLv3", "maintainer": "The RIPE Atlas Team", "maintainer_email": "atlas@ripe.net", "name": "ripe.atlas.sagan", "package_url": "https://pypi.org/project/ripe.atlas.sagan/", "platform": "", "project_url": "https://pypi.org/project/ripe.atlas.sagan/", "project_urls": { "Download": "https://github.com/RIPE-NCC/ripe.atlas.sagan", "Homepage": "https://github.com/RIPE-NCC/ripe.atlas.sagan" }, "release_url": "https://pypi.org/project/ripe.atlas.sagan/1.3.0/", "requires_dist": [ "python-dateutil", "pytz", "cryptography", "sphinx; extra == 'doc'", "ujson; extra == 'fast'" ], "requires_python": "", "summary": "A parser for RIPE Atlas measurement results", "version": "1.3.0" }, "last_serial": 4736243, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b9cd6979560edbd381086d1db17c1e39", "sha256": "45ea53106d8dafdcdaabff89c4c0a2e11feb5e50501a6ed45ac50155ad329a00" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.tar.gz", "has_sig": false, "md5_digest": "b9cd6979560edbd381086d1db17c1e39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40071, "upload_time": "2014-04-28T14:28:21", "url": "https://files.pythonhosted.org/packages/ad/7d/41e81d4e469a1600dfe86aecfb516073bfa1121f2d73c8fd963c702f92a9/ripe.atlas.sagan-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "bcfdd30bb7cd8a510a559a1f884cf634", "sha256": "3c2c4dfca651bc0993e8b4e27f1f9c5e856fadbdf770d980053a1a5d0406fe43" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.1.tar.gz", "has_sig": false, "md5_digest": "bcfdd30bb7cd8a510a559a1f884cf634", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40078, "upload_time": "2014-04-28T14:32:42", "url": "https://files.pythonhosted.org/packages/59/7b/b222b99da3dce7349951327ac43e75941610402fc8574bc98681749797f8/ripe.atlas.sagan-0.1.1.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "9c3818cbb052f81b449571b08c2c0846", "sha256": "88f8c22c99d7ffe55be514bbe28a8cda573689eab2cb485635f000b3e2b2f9a5" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.11.tar.gz", "has_sig": false, "md5_digest": "9c3818cbb052f81b449571b08c2c0846", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42497, "upload_time": "2014-05-20T13:02:12", "url": "https://files.pythonhosted.org/packages/a2/11/9988f1ea5b034d4a195317ee4aaf6e4232aeac003f85f86378bc0baae934/ripe.atlas.sagan-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "ea46a2c673d38a76fb9814b2d59b20db", "sha256": "2f8c4bedfa0d31e02603a6ed4420ad862cfcd6a6da74b29714846f95264892c0" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.12.tar.gz", "has_sig": false, "md5_digest": "ea46a2c673d38a76fb9814b2d59b20db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42934, "upload_time": "2014-05-21T09:54:12", "url": "https://files.pythonhosted.org/packages/23/07/b30f75d3673b38514719ebbf423603e03b70cdade39c3c6021f1cb4dc70a/ripe.atlas.sagan-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "a35f7ef542851586603fa7e16751985c", "sha256": "721372184f8773d619c5fafdc83b503b3a9491cae3a12b2786448d149e472415" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.13.tar.gz", "has_sig": false, "md5_digest": "a35f7ef542851586603fa7e16751985c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43922, "upload_time": "2014-05-21T13:43:56", "url": "https://files.pythonhosted.org/packages/8d/0a/f3e0c5c122528a2edf801580ba1523f6b337e6a58028ad78210847070aa4/ripe.atlas.sagan-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "cf9ff1e866b655e622b82445a88eb6c4", "sha256": "efe225ee84709deb6b4617e2b7fc225c416ac26f5ef4a1d8d027e6e66dcadfe1" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.14.tar.gz", "has_sig": false, "md5_digest": "cf9ff1e866b655e622b82445a88eb6c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43854, "upload_time": "2014-05-22T09:14:46", "url": "https://files.pythonhosted.org/packages/fe/5c/cf267352b6f3f990200fe5258ad3c666a971b0bbad8f6833738d52387bd5/ripe.atlas.sagan-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "b8a85a2c615de667e642655f3a7ea21d", "sha256": "76971563b1e235d014cf3a81ef3efe57417dc56571841d07827c3ab81bac681c" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.15.tar.gz", "has_sig": false, "md5_digest": "b8a85a2c615de667e642655f3a7ea21d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47933, "upload_time": "2014-06-19T09:58:08", "url": "https://files.pythonhosted.org/packages/0a/3d/c4064d62813c091e038efe902c0322cfec5f46ab35efe902958fa94a759b/ripe.atlas.sagan-0.1.15.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e62667089c90bcac25813a4fa7ae32a2", "sha256": "c0552e1818dd7a7e05ad182bec0f87a6f0ea2f989ef70e76df0cd779ee8d000d" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e62667089c90bcac25813a4fa7ae32a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39295, "upload_time": "2014-05-01T11:06:04", "url": "https://files.pythonhosted.org/packages/6b/50/f1d20f9a17b2fab09cd73e9c0d92b2ea0e37e5419167ba163031f39acbb1/ripe.atlas.sagan-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "00fc3db96eda5a63763881746f15bfa3", "sha256": "ba1065991d61c89e29876513ec7488bdb90389cedb821ea6acb8e49685e1dfc6" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.4.tar.gz", "has_sig": false, "md5_digest": "00fc3db96eda5a63763881746f15bfa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40493, "upload_time": "2014-05-01T14:59:25", "url": "https://files.pythonhosted.org/packages/62/95/9a9a4c2e9b5930138c25c60db739d42e151a66cfc09767cada75a557c5c9/ripe.atlas.sagan-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "4faa879a741358231cbe1d30d64db086", "sha256": "18f0319cee922c844c692b5f6164fbfa2ea405d83ff48e76fd2b1bc5e0270b6f" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.5.tar.gz", "has_sig": false, "md5_digest": "4faa879a741358231cbe1d30d64db086", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40826, "upload_time": "2014-05-01T15:09:23", "url": "https://files.pythonhosted.org/packages/09/d9/6c63555a5b9652532039d1443096be372ac9ac670c94e5a77bee471ff67a/ripe.atlas.sagan-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "a27bf693dd9b6ebbe7dd753a165a2aed", "sha256": "802436ecf1f4bb775f3b53ab9d94769f7f365a1575da4a9f1b449e433d6cdd09" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.6.tar.gz", "has_sig": false, "md5_digest": "a27bf693dd9b6ebbe7dd753a165a2aed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40828, "upload_time": "2014-05-01T15:30:59", "url": "https://files.pythonhosted.org/packages/fb/4f/62069aab8635ca4c5a35dec3dd40de93de3d13f93a461a739b9b1ffc28c5/ripe.atlas.sagan-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "aa9e95768cb8478935cd9aeb9ae87aaf", "sha256": "0774cd76b51f88137a27871c2f72a661ce85f6a3a1180a9df5c469451aec423c" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.7.tar.gz", "has_sig": false, "md5_digest": "aa9e95768cb8478935cd9aeb9ae87aaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42453, "upload_time": "2014-05-06T15:36:08", "url": "https://files.pythonhosted.org/packages/0a/87/e099205ee92738744a4722f35be39494afc8d3f419610326a47013de0933/ripe.atlas.sagan-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "a2b831ce6b05d9fb997d3aba690dc1cc", "sha256": "45cfec58d8265e15cba5e8345957140944f7c2d8fbb4c78f311941f9bd544398" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.8.tar.gz", "has_sig": false, "md5_digest": "a2b831ce6b05d9fb997d3aba690dc1cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42589, "upload_time": "2014-05-14T10:07:18", "url": "https://files.pythonhosted.org/packages/87/bf/ec77c1ff9ea53ee83acd9de7face611003e41a37fbc04600ef40e035e2a7/ripe.atlas.sagan-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "1a4df31c83c35c17874e5ba07548b19a", "sha256": "718dc60b4b7980dec942664e076523e2bdc18b406ac4ffa75659e3174a288420" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.1.9.tar.gz", "has_sig": false, "md5_digest": "1a4df31c83c35c17874e5ba07548b19a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41270, "upload_time": "2014-05-19T13:30:15", "url": "https://files.pythonhosted.org/packages/01/51/94bcf22f27ae14f9ed73a9360475ac082964a3a31a59b9894f7416f693a7/ripe.atlas.sagan-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b8296826e335e472f029677a972e8143", "sha256": "1f0895a5e7d355b21b38ea359bd7f2068eeba239a42e0e88bdb39e6882ef7bfd" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b8296826e335e472f029677a972e8143", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49584, "upload_time": "2014-06-23T10:33:18", "url": "https://files.pythonhosted.org/packages/da/27/379e10bb9863b6f5bf77cc301ffc81e68fe260cc41bc3bc305152e193f86/ripe.atlas.sagan-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c68381b6a464d8df91338f03e930262f", "sha256": "edc39f1c0bfd11c60ddb658933d4435e58fcf17d6cb66fbc4af23c286c275038" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.1.tar.gz", "has_sig": false, "md5_digest": "c68381b6a464d8df91338f03e930262f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49931, "upload_time": "2014-06-24T13:50:57", "url": "https://files.pythonhosted.org/packages/f7/d8/c70552c9b9bdcfe736a143ec3eabaab546e993c8eaedbfa01fdaa1939713/ripe.atlas.sagan-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b2bbda6218a6b76332f4ce7c5b078265", "sha256": "748e073ea0afdf7d4412be1459a687208e57cfe82dae0fad8e96481a76786cda" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b2bbda6218a6b76332f4ce7c5b078265", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49854, "upload_time": "2014-06-26T10:09:35", "url": "https://files.pythonhosted.org/packages/0f/ef/1606f84129feff5f5c59d6901fe38dc69e57eecf630d5919c577b6ec105e/ripe.atlas.sagan-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "97ba1c8bf860ba25374962a240170cd3", "sha256": "3394830df089e885cc94e86cd86f2b7b63c64479ac05be16ffcc9920081c20d5" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.3.tar.gz", "has_sig": false, "md5_digest": "97ba1c8bf860ba25374962a240170cd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31285, "upload_time": "2014-07-17T14:18:35", "url": "https://files.pythonhosted.org/packages/21/1e/9a36f90088ef390090b6101002dc5ed2f688e70ae6d1afa119c1de1964c5/ripe.atlas.sagan-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "174c2970a55511ba47593852365bdcef", "sha256": "7d996890c72122c6f9773d5c5732c8572dfd7562331b853a892e2c8e665b3131" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.4.tar.gz", "has_sig": false, "md5_digest": "174c2970a55511ba47593852365bdcef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50115, "upload_time": "2014-07-28T16:08:00", "url": "https://files.pythonhosted.org/packages/d4/3a/c690c3b3c0e3cbd1fa90813fa6bab5e5d803b85b0f9756cb68151627ed9a/ripe.atlas.sagan-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "b1be8f9d26f19631af7666233d10dd31", "sha256": "f70c8c657210ed13107cff435a5b64cef1d91dc304739b1799cd3ef0b3398dde" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.5.tar.gz", "has_sig": false, "md5_digest": "b1be8f9d26f19631af7666233d10dd31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50090, "upload_time": "2014-08-07T09:22:58", "url": "https://files.pythonhosted.org/packages/28/20/0495e262ba4fcce90c946b9bdf974e0266f72e0da5b0fe6ec6810c928ee0/ripe.atlas.sagan-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "944b696fa2d491e29c7937cc99040852", "sha256": "e045fb9153f331d2c3165729b30963f1669667c8599eb261f2d519baa00b00ba" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.6.tar.gz", "has_sig": false, "md5_digest": "944b696fa2d491e29c7937cc99040852", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49943, "upload_time": "2014-09-22T10:08:24", "url": "https://files.pythonhosted.org/packages/7b/5f/1bf6bc756ea93ab0d595e5ee7f6c6c7564287b8402a71d1df5760741f2df/ripe.atlas.sagan-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "451100c5bc7e449edf952b013ac24772", "sha256": "139553290f275b636716c9758efd51fa39e8d2d51af093d56e830962ddc50ed8" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.7.tar.gz", "has_sig": false, "md5_digest": "451100c5bc7e449edf952b013ac24772", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50058, "upload_time": "2014-10-02T10:15:43", "url": "https://files.pythonhosted.org/packages/68/b4/aabde617456771180f2a7a1f241b548827ed5de0cc689afe3ab541fde952/ripe.atlas.sagan-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "e35fcf0c5b259b0dfab920ab172bbaf6", "sha256": "e024e3a33b1d4f72eed2b02f099b106a38dcf85fc0a065da1b42e53caf402169" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.2.8.tar.gz", "has_sig": false, "md5_digest": "e35fcf0c5b259b0dfab920ab172bbaf6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51894, "upload_time": "2014-10-16T10:23:59", "url": "https://files.pythonhosted.org/packages/b5/39/9cdebb35e063effa99545ba236796f0c1ba72b1a3ba262da18a7b517bcf2/ripe.atlas.sagan-0.2.8.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "4e4fc833fe187a5b149eba4a62ef9af1", "sha256": "84152717074c548be3c97abd9d4729d11b64a4a7a8abc1db0ed4784d9a66344c" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.3.tar.gz", "has_sig": false, "md5_digest": "4e4fc833fe187a5b149eba4a62ef9af1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51195, "upload_time": "2014-10-27T11:25:19", "url": "https://files.pythonhosted.org/packages/d6/51/9cde6a479e2cbd46bb3692e0017e6874c1473b13d79b565270ddd7c251ed/ripe.atlas.sagan-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "d755c55d72e2236d49952f8ba8320b77", "sha256": "a23dc96f03134506a6723acf370bedd4b3df7076336e1406ae20ac036e305b32" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.4.tar.gz", "has_sig": false, "md5_digest": "d755c55d72e2236d49952f8ba8320b77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70958, "upload_time": "2014-11-19T13:47:30", "url": "https://files.pythonhosted.org/packages/58/d8/be069036b754f97482fc713cba746d89bf21931008321c67c3a89d903151/ripe.atlas.sagan-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "bcfd7242a71d71775d65a14687cbd719", "sha256": "59e01962055cb413bdf29d07444f8264cc03a9936b27b98b05c43036f63e8625" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.5.tar.gz", "has_sig": false, "md5_digest": "bcfd7242a71d71775d65a14687cbd719", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71564, "upload_time": "2014-12-01T15:41:49", "url": "https://files.pythonhosted.org/packages/d2/27/adc87080c3efdd3094d1afea2e92bac3ecb92fe6047f555ee36c225ad8eb/ripe.atlas.sagan-0.5.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "5883c8f18fd26e1ce249e50f61b83620", "sha256": "de56e1c3c70f166572978fcde4cc850e43c79b73f026a14c8990eb7120216341" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.6.0.tar.gz", "has_sig": false, "md5_digest": "5883c8f18fd26e1ce249e50f61b83620", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74689, "upload_time": "2014-12-16T13:30:12", "url": "https://files.pythonhosted.org/packages/32/b3/529f1b6bfdda785e24ca122ecea439b7e9afd3148b9fb8360d82bcf29656/ripe.atlas.sagan-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "a6eafcd83b4663728c84957d6d0ff2e7", "sha256": "3417d47c4708e7eed400aca83e2578289946272dcd27bb81413b1004847cfc3e" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.6.1.tar.gz", "has_sig": false, "md5_digest": "a6eafcd83b4663728c84957d6d0ff2e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75102, "upload_time": "2015-01-23T16:39:12", "url": "https://files.pythonhosted.org/packages/f7/ef/f9dc6d63cf6687df33557af00aeca168d7f02f5efb3a48bc0432025fb96a/ripe.atlas.sagan-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "cd87e050f0963fcec9781717fe3b109f", "sha256": "d8fc9d676ae2d8a03922b9cfdbfd09bb734a320d3651e881da301e17603a3b5c" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.6.2.tar.gz", "has_sig": false, "md5_digest": "cd87e050f0963fcec9781717fe3b109f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58642, "upload_time": "2015-01-30T22:28:13", "url": "https://files.pythonhosted.org/packages/96/8b/d9792f60e8f95cb62f1b1452dd0ade8b2215ea0ca440e40b6f2a62123795/ripe.atlas.sagan-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "d5defe7f8449d6222cd0d4d417f261a1", "sha256": "df641fd854a3cce608ec81a281694f17073ecc4803fd474e95877e6c333ab657" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.6.3.tar.gz", "has_sig": false, "md5_digest": "d5defe7f8449d6222cd0d4d417f261a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75174, "upload_time": "2015-02-11T13:36:17", "url": "https://files.pythonhosted.org/packages/a3/18/bb2acd02a72900a9c3ee608d05ff0889fb85fdf56d9ff9f4616c279ad5b5/ripe.atlas.sagan-0.6.3.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "1e90c87d4adf5cb6db1a1ee8f08fb8e7", "sha256": "af069cf2e44608b90598e1adeb282e28e2d96fc623c0a2ae49b4f4a0d42aebde" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.7.tar.gz", "has_sig": false, "md5_digest": "1e90c87d4adf5cb6db1a1ee8f08fb8e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76435, "upload_time": "2015-02-16T10:57:04", "url": "https://files.pythonhosted.org/packages/6d/87/e0c87203e727dfa81590d1dd3e8731bb3a659a63538103c2a41ce18b89e5/ripe.atlas.sagan-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4248caeecd6963f6cea66567262c14fa", "sha256": "85112bbc7ccf7a24c7a85d2ee05a28b7732041dec9391e59a90edcb70a59aafd" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4248caeecd6963f6cea66567262c14fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79064, "upload_time": "2015-02-16T11:47:23", "url": "https://files.pythonhosted.org/packages/12/1d/93fc3f8c264be653a4a5a67256c65fc538100febb30ac0c88bbee82637e7/ripe.atlas.sagan-0.7.1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "dae8866a43cde0c44af18bd850b09460", "sha256": "e14632c2aca65ca060b6323344fe797449d56a13eaf9c692d772ab3013f7b18e" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.8.0.tar.gz", "has_sig": false, "md5_digest": "dae8866a43cde0c44af18bd850b09460", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59390, "upload_time": "2015-03-30T12:40:33", "url": "https://files.pythonhosted.org/packages/ad/1e/0eaa3fb5df2af2fcadd2d4fc62cc45015c566a55735eda0af43926ae2dc6/ripe.atlas.sagan-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "34385c0f59869dbc800713255db14375", "sha256": "d3650c496a56e7c9390d2cf2bf1d5c5d4231935cf4af8ec1df86c5e6bd9c4d7a" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.8.1.tar.gz", "has_sig": false, "md5_digest": "34385c0f59869dbc800713255db14375", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59588, "upload_time": "2015-06-11T16:00:49", "url": "https://files.pythonhosted.org/packages/2c/b9/5716f1e6465bdf24dac3c58ae970b45d7dd64cd184b77d1c7611371ffdc7/ripe.atlas.sagan-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "16d4bf68423b2ab2fd70b20f51c87e33", "sha256": "d3c753eba07d45304d2b44c89f49f302ef1e9791f7b939f0566c189530ccae08" }, "downloads": -1, "filename": "ripe.atlas.sagan-0.8.2.tar.gz", "has_sig": false, "md5_digest": "16d4bf68423b2ab2fd70b20f51c87e33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81469, "upload_time": "2015-07-29T11:27:19", "url": "https://files.pythonhosted.org/packages/5a/d5/95bfde39f4d1a10974574b22e2273037a8e7c533fcefa3c807a2a7561692/ripe.atlas.sagan-0.8.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "20e98fa783844a69055c4e0524118c81", "sha256": "dcec3e1b45398c38b0120a8d9eee2568091e002daf4242c87c1961b4261408ba" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.0.0.tar.gz", "has_sig": false, "md5_digest": "20e98fa783844a69055c4e0524118c81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82863, "upload_time": "2015-08-12T09:00:01", "url": "https://files.pythonhosted.org/packages/6e/cb/9725ebaa6578a7a780431e37a02ab1f99c5a788dc0f35034473ab5d00edb/ripe.atlas.sagan-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1fb06234b6e5378a77475ddd75138100", "sha256": "c0a8a0bee09e52b57fe2c41c3736737f258644a826c6b50223ff0ef6ea0402f1" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1fb06234b6e5378a77475ddd75138100", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84151, "upload_time": "2015-09-18T10:23:56", "url": "https://files.pythonhosted.org/packages/be/ed/56fdefc282a55aba25789bfb5cddc32e46d57c7a4483b801cc489e5c5b4b/ripe.atlas.sagan-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "cffa63595ae6ee703137e69165e28ce0", "sha256": "f1b8376a2d4db19243636ba6c831527bfe1b89e56366e1f64decfb188b921efa" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.1.tar.gz", "has_sig": false, "md5_digest": "cffa63595ae6ee703137e69165e28ce0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84137, "upload_time": "2015-09-21T15:45:27", "url": "https://files.pythonhosted.org/packages/65/22/9343cfd2701c40ea5cf8afcac3dba3f451dc00fafdcdc3e17bee8eec0c0c/ripe.atlas.sagan-1.1.1.tar.gz" } ], "1.1.10": [ { "comment_text": "", "digests": { "md5": "e68aee09e18021a12329cb4adec4bca5", "sha256": "5d6b01567c23449922b07774c835fe5a8d8b523b2b2f2dffb417ddc84082627d" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e68aee09e18021a12329cb4adec4bca5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 76088, "upload_time": "2016-02-12T13:06:42", "url": "https://files.pythonhosted.org/packages/af/31/8ea0ac865dd5b7cb1e637526228156b4bf8248c24c77ca65319901b63925/ripe.atlas.sagan-1.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ac95d9d89bd1ac70942e5ef99a7464c", "sha256": "3831bf2bc66188c5764b3d0b3c0e5387b3d670d0a8839ed464a244c6ffe5288b" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.10.tar.gz", "has_sig": false, "md5_digest": "1ac95d9d89bd1ac70942e5ef99a7464c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128425, "upload_time": "2016-02-12T13:06:48", "url": "https://files.pythonhosted.org/packages/39/02/7d9d90daf7e267d4192d5a8ba9139fcd94a78f1a123f3e1ca1729562d7f3/ripe.atlas.sagan-1.1.10.tar.gz" } ], "1.1.11": [ { "comment_text": "", "digests": { "md5": "6aa8a84770499df99b24314d5a4aa5e7", "sha256": "876a0c1f25162a2aea0608be9507a9253255891472fce1508992c583d2e60df0" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6aa8a84770499df99b24314d5a4aa5e7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 42877, "upload_time": "2016-05-30T11:27:10", "url": "https://files.pythonhosted.org/packages/b0/ba/30280b85608e1d345d30cbee2d975236454ca7da737db71216fea41427fd/ripe.atlas.sagan-1.1.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc3e9a80b5ce168f091b60bcd0a085c1", "sha256": "b51c464b6ef4f2cca0621bb1c4a2c626b58afbe9c32c5292c6ab7c8c1b705d08" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.11.tar.gz", "has_sig": false, "md5_digest": "fc3e9a80b5ce168f091b60bcd0a085c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102136, "upload_time": "2016-05-30T11:27:14", "url": "https://files.pythonhosted.org/packages/56/a6/86fa806e9c9e93cfcdadcb5bb2b465ae2cd387020a36a5e0ea224c167d90/ripe.atlas.sagan-1.1.11.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "d419156cc56008726b40b65ecf7d5c32", "sha256": "afa74442e0c4f15be54ae64bf577f8dd7845a0c9685f96771f4269f3c95b5684" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.3.tar.gz", "has_sig": false, "md5_digest": "d419156cc56008726b40b65ecf7d5c32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89757, "upload_time": "2015-10-01T13:27:55", "url": "https://files.pythonhosted.org/packages/f1/c2/9310267b267873d466abed1faf36cd04251f84189872ecda5c346f55da4e/ripe.atlas.sagan-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "dda80caadd8e64423042e37926caa477", "sha256": "88672a2c65168d0b0f48520a98d6cb7c49535e532a4cc1dde71de86ace68b237" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.4.tar.gz", "has_sig": false, "md5_digest": "dda80caadd8e64423042e37926caa477", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98412, "upload_time": "2015-10-21T13:56:00", "url": "https://files.pythonhosted.org/packages/e6/f7/2f307dfae53a2f4d04fc7bfe1aa2fc6d5c39dbc50b9c4d783b8090e1bc3e/ripe.atlas.sagan-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "ed05b51d46a0464eeaa0b54fdd42b23a", "sha256": "e84fd847aef4b336566072688ca060b0f5f3e1d7ce885c39699496bd69328f22" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "ed05b51d46a0464eeaa0b54fdd42b23a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 105576, "upload_time": "2015-11-12T13:26:35", "url": "https://files.pythonhosted.org/packages/cd/3a/cecd4992ca4281cd3612c7ac866466d6018900a57a2c0ada49e638c6e19a/ripe.atlas.sagan-1.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "123a7fb3607f3038fbdb44cfbc0d1206", "sha256": "e08587ffaf1ef81e682f2f9caaee18419eb556405b24ec7bbc1d1c3317cf1ac9" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.5.tar.gz", "has_sig": false, "md5_digest": "123a7fb3607f3038fbdb44cfbc0d1206", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99084, "upload_time": "2015-11-12T13:26:42", "url": "https://files.pythonhosted.org/packages/4d/d8/7de553dc3511aea340a07a2b330d8beb923af9e2af16454fa95b218777c1/ripe.atlas.sagan-1.1.5.tar.gz" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "87ca095a859a581ce70484bb3a4deebc", "sha256": "4e30c1d28b50bb0e1a915cf91b5b790348d7b28fbe84d2ddb1f7d83fa3a5832c" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.6.tar.gz", "has_sig": false, "md5_digest": "87ca095a859a581ce70484bb3a4deebc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69642, "upload_time": "2015-11-24T10:54:01", "url": "https://files.pythonhosted.org/packages/65/8f/6654cf94c6aa88bc588b4777ed3352da169e0df28edab1ff4fd4374e4596/ripe.atlas.sagan-1.1.6.tar.gz" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "96dda1969f8307e036a7a391a025a97f", "sha256": "b02b238e34dded4e4489dd241f08d652649b5799cc718f73f9d3cac312da707b" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.7-py2-none-any.whl", "has_sig": false, "md5_digest": "96dda1969f8307e036a7a391a025a97f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 147833, "upload_time": "2015-12-14T16:09:53", "url": "https://files.pythonhosted.org/packages/6e/d9/25c4231a49f1855feb7945d4707cf04730c2f7e98a21fe72671d3790a035/ripe.atlas.sagan-1.1.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80808106a49d179716f8ebac5a26719a", "sha256": "0b8e58571d701a9ba48383262b923ab9bfeec270fc0b676988dcd128209ae7fc" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.7.tar.gz", "has_sig": false, "md5_digest": "80808106a49d179716f8ebac5a26719a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 361993, "upload_time": "2015-12-14T16:10:22", "url": "https://files.pythonhosted.org/packages/08/20/1b6c66fa4d8ce818c56740904c256568539dfa32800cc254d8083000a633/ripe.atlas.sagan-1.1.7.tar.gz" } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "aa5c89fe63eb77e834d396d25135a31f", "sha256": "a0212aca26ee17de3158b40278c2e5b81ab55cd49ffa30d6f0085bd9f21ef800" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aa5c89fe63eb77e834d396d25135a31f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45571, "upload_time": "2015-12-15T14:34:52", "url": "https://files.pythonhosted.org/packages/dd/3a/ccbd136ec7372973775592c195462f08da8f9c1ecfebc9c09c7d4f8fb88d/ripe.atlas.sagan-1.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a29ebba5926afc4d8791fc48993eae5", "sha256": "bb394f738570b0b0c18257856b61c730375d91996c8c726f9dcd367fd618b3d8" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.1.8.tar.gz", "has_sig": false, "md5_digest": "6a29ebba5926afc4d8791fc48993eae5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100037, "upload_time": "2015-12-15T14:34:59", "url": "https://files.pythonhosted.org/packages/9b/3e/1258c3363e98f0d0c480b00e8526fe58f186646c91c1867b64f31ddbed39/ripe.atlas.sagan-1.1.8.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "9036ae6464e1e2f9dacacc98dc0d0d97", "sha256": "4e90a1771b3db9c0b8723b19e6780437b7acb6bc8a22f6ef1bc0711e75ead3a3" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9036ae6464e1e2f9dacacc98dc0d0d97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 42590, "upload_time": "2017-04-21T08:11:24", "url": "https://files.pythonhosted.org/packages/10/58/7dd3d4d3b1940c1118b51e3e30ba77c9a11edddf3b947d913c0c4ac5d6c5/ripe.atlas.sagan-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6630dd0e9880e907e03f8af9f9ff164", "sha256": "52bf9f7d0a5a82535f629a2af5644e8de1c4b085f711841ca3660d34fbef19cc" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.2.tar.gz", "has_sig": false, "md5_digest": "f6630dd0e9880e907e03f8af9f9ff164", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103618, "upload_time": "2017-04-21T08:11:26", "url": "https://files.pythonhosted.org/packages/89/cc/7dfb9c223f9feee30e08825c80cbd68b59d11113a6f6e8b6bee438983eaf/ripe.atlas.sagan-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "7bea78188063660ed63bb6b235f3be6a", "sha256": "cb7bdb028ee3f331fde61285141083de3020e2060b61252e20e8a10544adb353" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7bea78188063660ed63bb6b235f3be6a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43150, "upload_time": "2017-06-15T13:46:14", "url": "https://files.pythonhosted.org/packages/ac/af/47e2fb7da11dd9d6cd710139bc27fbb2add42240fe244be32226affb4603/ripe.atlas.sagan-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "374ac5a7be739ebe6f7323f214418ed1", "sha256": "2a834f4d0f9f796860fecbab67db128a461721b6af9823d22f38182941718555" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.2.1.tar.gz", "has_sig": false, "md5_digest": "374ac5a7be739ebe6f7323f214418ed1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107139, "upload_time": "2017-06-15T13:46:15", "url": "https://files.pythonhosted.org/packages/4a/42/3cfaa7642007a52b36b9a770191863477748bf4e8ad0ac51f55fdb64d403/ripe.atlas.sagan-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "cb1b1cdbac1a2eb90d5c13bc70442c35", "sha256": "933c5f56ee309764e4feb5a9a3e09e5d7a96a91260a95094e21201e496a459ae" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb1b1cdbac1a2eb90d5c13bc70442c35", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43234, "upload_time": "2017-08-30T14:48:54", "url": "https://files.pythonhosted.org/packages/70/61/32e3c1440b7fb761a1cbac59b4dd0dcc640789d72be113f71321f895601c/ripe.atlas.sagan-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36cd5bc84d9ed7573ae14a6c0d3b64da", "sha256": "836fdb3beea0dd42d9495669c82bab476e265e9f76c153716a8f2538893b9cdf" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.2.2.tar.gz", "has_sig": false, "md5_digest": "36cd5bc84d9ed7573ae14a6c0d3b64da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108353, "upload_time": "2017-08-30T14:48:56", "url": "https://files.pythonhosted.org/packages/76/75/3c60c5585375ebf3c2c77dde08708db22431f05e427eb2f50a007c604949/ripe.atlas.sagan-1.2.2.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "1554e5535782b76bbfddbb1280027027", "sha256": "c177aee2ecd4b19e964459aa477c614aff103439ffd9d1999c82c10d6e73b88b" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1554e5535782b76bbfddbb1280027027", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36704, "upload_time": "2019-01-24T15:45:51", "url": "https://files.pythonhosted.org/packages/53/71/ff12d6f57add3d6c49374654b50cbb0474bb547300e234c348ff36a00935/ripe.atlas.sagan-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20001bfe55aeb103ca9ace70b30fdab9", "sha256": "0a1d7548032a7521fcde6db6a766a5e01b06968d21691f9c89076561b8416222" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.3.0.tar.gz", "has_sig": false, "md5_digest": "20001bfe55aeb103ca9ace70b30fdab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107382, "upload_time": "2019-01-24T15:45:53", "url": "https://files.pythonhosted.org/packages/e9/e7/98b55de2cbe2f9cae447e68dafccacbf5450104cd0ab2b0960b142e416ae/ripe.atlas.sagan-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1554e5535782b76bbfddbb1280027027", "sha256": "c177aee2ecd4b19e964459aa477c614aff103439ffd9d1999c82c10d6e73b88b" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1554e5535782b76bbfddbb1280027027", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36704, "upload_time": "2019-01-24T15:45:51", "url": "https://files.pythonhosted.org/packages/53/71/ff12d6f57add3d6c49374654b50cbb0474bb547300e234c348ff36a00935/ripe.atlas.sagan-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20001bfe55aeb103ca9ace70b30fdab9", "sha256": "0a1d7548032a7521fcde6db6a766a5e01b06968d21691f9c89076561b8416222" }, "downloads": -1, "filename": "ripe.atlas.sagan-1.3.0.tar.gz", "has_sig": false, "md5_digest": "20001bfe55aeb103ca9ace70b30fdab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107382, "upload_time": "2019-01-24T15:45:53", "url": "https://files.pythonhosted.org/packages/e9/e7/98b55de2cbe2f9cae447e68dafccacbf5450104cd0ab2b0960b142e416ae/ripe.atlas.sagan-1.3.0.tar.gz" } ] }