{ "info": { "author": "The PlanetaryPy Developers", "author_email": "trevor@heytrevor.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "===============================\npvl\n===============================\n\n.. image:: https://img.shields.io/pypi/v/pvl.svg?style=flat-square\n :target: https://pypi.python.org/pypi/pvl\n\n.. image:: https://img.shields.io/travis/planetarypy/pvl.svg?style=flat-square\n :target: https://travis-ci.org/planetarypy/pvl\n\n.. image:: https://img.shields.io/pypi/dm/pvl.svg?style=flat-square\n :target: https://pypi.python.org/pypi/pvl\n\nPython implementation of PVL (Parameter Value Language)\n\n* Free software: BSD license\n* Documentation: http://pvl.readthedocs.org.\n* Support for Python 2, 3 and pypi.\n* Proudly part of the `PlanetaryPy Toolkit`_\n\nPVL is a markup language, similar to xml, commonly employed for entries in the\nPlanetary Database System used by NASA to store mission data, among other uses.\nThis package supports both encoding a decoding a superset of PVL, including the\n`USGS Isis Cube Label`_ and `NASA PDS 3 Label`_ dialects.\n\n\nInstallation\n------------\n\nCan either install with pip or with conda.\n\nTo install with pip, at the command line::\n\n $ pip install pvl\n\nDirections for installing with conda-forge:\n\nInstalling pvl from the conda-forge channel can be achieved by adding\nconda-forge to your channels with::\n\n conda config --add channels conda-forge\n\n\nOnce the conda-forge channel has been enabled, pvl can be installed with::\n\n conda install pvl\n\nIt is possible to list all of the versions of pvl available on your platform\nwith::\n\n conda search pvl --channel conda-forge\n\n\nBasic Usage\n-----------\n\npvl exposes an API familiar to users of the standard library json module.\n\nDecoding is primarily done through ``pvl.load`` for file like objects and\n``pvl.loads`` for strings::\n\n >>> import pvl\n >>> module = pvl.loads(\"\"\"\n ... foo = bar\n ... items = (1, 2, 3)\n ... END\n ... \"\"\")\n >>> print module\n PVLModule([\n (u'foo', u'bar')\n (u'items', [1, 2, 3])\n ])\n >>> print module['foo']\n bar\n\nYou may also use ``pvl.load`` to read a label directly from an image_::\n\n >>> import pvl\n >>> label = pvl.load('pattern.cub')\n >>> print label\n PVLModule([\n (u'IsisCube',\n PVLObject([\n (u'Core',\n PVLObject([\n (u'StartByte', 65537)\n (u'Format', u'Tile')\n # output truncated...\n >>> print label['IsisCube']['Core']['StartByte']\n 65537\n\n\nSimilarly, encoding pvl modules is done through ``pvl.dump`` and ``pvl.dumps``::\n\n >>> import pvl\n >>> print pvl.dumps({\n ... 'foo': 'bar',\n ... 'items': [1, 2, 3]\n ... })\n items = (1, 2, 3)\n foo = bar\n END\n\n``PVLModule`` objects may also be pragmatically built up to control the order\nof parameters as well as duplicate keys::\n\n >>> import pvl\n >>> module = pvl.PVLModule({'foo': 'bar'})\n >>> module.append('items', [1, 2, 3])\n >>> print pvl.dumps(module)\n foo = bar\n items = (1, 2, 3)\n END\n\nA ``PVLModule`` is a ``dict`` like container that preserves ordering as well as\nallows multiple values for the same key. It provides a similar similar semantics\nto a ``list`` of key/value ``tuples`` but with ``dict`` style access::\n\n >>> import pvl\n >>> module = pvl.PVLModule([\n ... ('foo', 'bar'),\n ... ('items', [1, 2, 3]),\n ... ('foo', 'remember me?'),\n ... ])\n >>> print module['foo']\n bar\n >>> print module.getlist('foo')\n ['bar', 'remember me?']\n >>> print module.items()\n [('foo', 'bar'), ('items', [1, 2, 3]), ('foo', u'remember me?')]\n >>> print pvl.dumps(module)\n foo = bar\n items = (1, 2, 3)\n foo = \"remember me?\"\n END\n\nFor more information on custom serilization and deseralization see the\n`full documentation`_.\n\n\nContributing\n------------\n\nFeedback, issues, and contributions are always gratefully welcomed. See the\n`contributing guide`_ for details on how to help and setup a development\nenvironment.\n\n\n.. _PlanetaryPy Toolkit: https://github.com/planetarypy\n.. _USGS Isis Cube Label: http://isis.astrogeology.usgs.gov/\n.. _NASA PDS 3 Label: https://pds.nasa.gov\n.. _image: https://github.com/planetarypy/pvl/raw/master/tests/data/pattern.cub\n.. _full documentation: http://pvl.readthedocs.org\n.. _contributing guide: https://github.com/planetarypy/pvl/blob/master/CONTRIBUTING.rst\n\n\n\n\nHistory\n-------\n\n0.3.0 (2017-06-28)\n~~~~~~~~~~~~~~~~~~\n\n* Create methods to add items to the label\n* Give user option to allow the parser to succeed in parsing broken labels\n\n0.2.0 (2015-08-13)\n~~~~~~~~~~~~~~~~~~\n\n* Drastically increase test coverage.\n* Lots of bug fixes.\n* Add Cube and PDS encoders.\n* Cleanup README.\n* Use pvl specification terminology.\n* Added element access by index and slice.\n\n0.1.1 (2015-06-01)\n~~~~~~~~~~~~~~~~~~\n\n* Fixed issue with reading Pancam PDS Products.\n\n0.1.0 (2015-05-30)\n~~~~~~~~~~~~~~~~~~\n\n* First release on PyPI.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/planetarypy/pvl", "keywords": "pvl", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pvl", "package_url": "https://pypi.org/project/pvl/", "platform": "", "project_url": "https://pypi.org/project/pvl/", "project_urls": { "Homepage": "https://github.com/planetarypy/pvl" }, "release_url": "https://pypi.org/project/pvl/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "Python implementation of PVL (Parameter Value Language)", "version": "0.3.0" }, "last_serial": 2907748, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "5a585a97fdabd2631e78d7bec6bd49f2", "sha256": "205f8f1fdd059c057f37a78addd958128e80ff4d2fe5049dd2b6df47537dd3e4" }, "downloads": -1, "filename": "pvl-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a585a97fdabd2631e78d7bec6bd49f2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12153, "upload_time": "2015-05-30T21:28:58", "url": "https://files.pythonhosted.org/packages/72/2c/6a31522af2bae1349f14f839a2e99f6b4e6862c945a567fde9de1879b283/pvl-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd84494239fcdad6f6a3bc7803ab7c88", "sha256": "32449aee821a9ea29319546ea0f44650f48cf266ec0c99abe8eae1427bf574f2" }, "downloads": -1, "filename": "pvl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bd84494239fcdad6f6a3bc7803ab7c88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51118, "upload_time": "2015-05-30T21:28:54", "url": "https://files.pythonhosted.org/packages/73/c4/ae18be58242dc4bdad8427b599b2d3dc7298ed575d94e669705568cc4773/pvl-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "45c41019de7f55f504d35337454f0024", "sha256": "761666a62ffce07425b54376fc97626ec24d7f8732787a8cd101bb28dca3b83f" }, "downloads": -1, "filename": "pvl-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "45c41019de7f55f504d35337454f0024", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 13477, "upload_time": "2015-06-02T11:42:00", "url": "https://files.pythonhosted.org/packages/d7/47/e6003df1bf7649d6e5318150b9b20646d482e987b96a1b51de605724b800/pvl-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aea2c117b5ec14b40eef1397c4434490", "sha256": "f659d96f168942a34c20ea088ef2fc36ca915e7eb5c9a597b1961fd3c456aa43" }, "downloads": -1, "filename": "pvl-0.1.1.tar.gz", "has_sig": false, "md5_digest": "aea2c117b5ec14b40eef1397c4434490", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58832, "upload_time": "2015-06-02T11:41:54", "url": "https://files.pythonhosted.org/packages/33/64/e5e0ec39f5fa7716bca5cc964bdf5cf99e731ca1d9f7f818c0e669012f28/pvl-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "4a7b1c94fb425b22de87ba2e1e020dd8", "sha256": "374e0c82bf53520066abc3f4b99b7cdd45f635519d28064add6f6b781279d491" }, "downloads": -1, "filename": "pvl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4a7b1c94fb425b22de87ba2e1e020dd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1409683, "upload_time": "2015-08-13T13:40:00", "url": "https://files.pythonhosted.org/packages/96/ba/2b08ad600313a9829fa969bd3c41b560c531d0e745bbb5acac85f0f2b40b/pvl-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "0dd806d3d4a8e242247d59f3ce65af55", "sha256": "8074789627a1aecf57b677456d9922483c903d3da4ccc265e918ad21e2bac87f" }, "downloads": -1, "filename": "pvl-0.3.0.tar.gz", "has_sig": false, "md5_digest": "0dd806d3d4a8e242247d59f3ce65af55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68080, "upload_time": "2017-05-29T22:32:50", "url": "https://files.pythonhosted.org/packages/0d/f2/bfbcebb4e50482aea4a184bb760b80d0b3fcc7cdfeeb357912fa715148ea/pvl-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0dd806d3d4a8e242247d59f3ce65af55", "sha256": "8074789627a1aecf57b677456d9922483c903d3da4ccc265e918ad21e2bac87f" }, "downloads": -1, "filename": "pvl-0.3.0.tar.gz", "has_sig": false, "md5_digest": "0dd806d3d4a8e242247d59f3ce65af55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68080, "upload_time": "2017-05-29T22:32:50", "url": "https://files.pythonhosted.org/packages/0d/f2/bfbcebb4e50482aea4a184bb760b80d0b3fcc7cdfeeb357912fa715148ea/pvl-0.3.0.tar.gz" } ] }