{ "info": { "author": "Matthew Miguez", "author_email": "r.m.miguez@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Other Audience", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Text Processing :: Markup :: XML" ], "description": "pymods\n======\n\npymods is utility module for working with the Library of Congress's MODS\nXML standard: Metadata Description Schema (MODS). It is a utility\nwrapper for the lxml module specific to deserializing data out of\nMODSXML into python data types.\n\nIf you need a module to serialize data into MODSXML, see the other\n`pymods by Matt Cordial `_.\n\nInstalling\n----------\n\nRecommended:\n\n``pip install pymods``\n\nUsing\n-----\n\nBasics\n~~~~~~\n\nXML is parsed using the MODSReader class:\n\n``mods_records = pymods.MODSReader('some_file.xml')``\n\nIndividual records are stored as an iterator of the MODSRecord object:\n\n.. code:: python\n\n In [5]: for record in mods_records:\n ....: print(record)\n ....:\n \n \n \n\nMODSReader will work with ``mods:modsCollection`` documents, outputs\nfrom OAI-PMH feeds, or individual MODSXML documents with ``mods:mods``\nas the root element.\n\npymods.MODSRecord\n^^^^^^^^^^^^^^^^^\n\nThe MODSReader class parses each ``mods:mods`` element into a\npymods.MODSRecord object. pymods.MODSRecord is a custom wrapper class\nfor the lxml.ElementBase class. All children of pymods.Record inherit\nthe lxml.\\_Element and lxml.ElementBase methods.\n\n.. code:: python\n\n In [6]: record = next(pymods.MODSReader('example.xml'))\n In [7]: print(record.nsmap)\n {'dcterms': 'http://purl.org/dc/terms/', 'xsi': 'http://www.w3.org/2001/XMLSchema-instance', None: 'http://www.loc.gov/mods/v3', 'flvc': 'info:flvc/manifest/v1', 'xlink': 'http://www.w3.org/1999/xlink', 'mods': 'http://www.loc.gov/mods/v3'}\n\n.. code:: python\n\n In [8]: for child in record.iterdescendants():\n ....: print(child.tag)\n\n {http://www.loc.gov/mods/v3}identifier\n {http://www.loc.gov/mods/v3}extension\n {info:flvc/manifest/v1}flvc\n {info:flvc/manifest/v1}owningInstitution\n {info:flvc/manifest/v1}submittingInstitution\n {http://www.loc.gov/mods/v3}titleInfo\n {http://www.loc.gov/mods/v3}title\n {http://www.loc.gov/mods/v3}name\n {http://www.loc.gov/mods/v3}namePart\n {http://www.loc.gov/mods/v3}role\n {http://www.loc.gov/mods/v3}roleTerm\n {http://www.loc.gov/mods/v3}roleTerm\n {http://www.loc.gov/mods/v3}typeOfResource\n {http://www.loc.gov/mods/v3}genre\n ...\n\nMethods\n~~~~~~~\n\nAll functions return data either as a string, list, list of named\ntuples. See the appropriate docstring for details.\n\n.. code:: python\n\n >>> record.genre?\n Type: property\n String form: \n Docstring:\n Accesses mods:genre element.\n :return: A list containing Genre elements with term, authority,\n authorityURI, and valueURI attributes.\n\nExamples\n--------\n\nImporting\n\n.. code:: python\n\n from pymods import MODSReader, MODSRecord\n\nParsing a file\n\n.. code:: python\n\n In [10]: mods = MODSReader('example.xml')\n In [11]: for record in mods:\n ....: print(record.dates)\n ....:\n [Date(text='1966-12-08', type='{http://www.loc.gov/mods/v3}dateCreated')]\n None\n [Date(text='1987-02', type='{http://www.loc.gov/mods/v3}dateIssued')]\n\nSimple tasks\n~~~~~~~~~~~~\n\nGenerating a title list\n\n.. code:: python\n\n In [14]: for record in mods:\n ....: print(record.titles)\n ....:\n ['Fire Line System']\n ['$93,668.90. One Mill Tax Apportioned by Various Ways Proposed']\n ['Broward NOW News: National Organization for Women, February 1987']\n\nCreating a subject list\n\n.. code:: python\n\n In [17]: for record in mods:\n ....: for subject in record.subjects:\n ....: print(subject.text)\n ....:\n Concert halls\n Architecture\n Architectural drawings\n Structural systems\n Structural systems drawings\n Structural drawings\n Safety equipment\n Construction\n Mechanics\n Structural optimization\n Architectural design\n Fire prevention--Safety measures\n Taxes\n Tax payers\n Tax collection\n Organizations\n Feminism\n Sex discrimination against women\n Women's rights\n Equal rights amendments\n Women--Societies and clubs\n National Organization for Women\n\nMore complex tasks\n~~~~~~~~~~~~~~~~~~\n\nCreating a list of subject URI's only for LCSH subjects\n\n.. code:: python\n\n In [18]: for record in mods:\n ....: for subject in record.subjects:\n ....: if 'lcsh' == subject.authority:\n ....: print(subject.uri)\n ....:\n http://id.loc.gov/authorities/subjects/sh85082767\n http://id.loc.gov/authorities/subjects/sh88004614\n http://id.loc.gov/authorities/subjects/sh85132810\n http://id.loc.gov/authorities/subjects/sh85147343\n\nGet URLs for objects using a No Copyright US rightsstatement.org URI\n\n.. code:: python\n\n In [23]: for record in mods:\n ....: for rights_elem in record.rights\n ....: if rights_elem.uri == 'http://rightsstatements.org/vocab/NoC-US/1.0/':\n ....: print(record.purl)\n ....:\n http://purl.flvc.org/fsu/fd/FSU_MSS0204_B01_F10_09\n http://purl.flvc.org/fsu/fd/FSU_MSS2008003_B18_F01_004\n\n.. |Build Status| image:: https://travis-ci.org/mrmiguez/pymods.svg?branch=master\n :target: https://travis-ci.org/mrmiguez/pymods\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/mrmiguez/pymods", "keywords": "MODS metadata xml", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pymods", "package_url": "https://pypi.org/project/pymods/", "platform": "", "project_url": "https://pypi.org/project/pymods/", "project_urls": { "Homepage": "https://github.com/mrmiguez/pymods" }, "release_url": "https://pypi.org/project/pymods/2.0.8/", "requires_dist": null, "requires_python": "", "summary": "Utility class wrapping lxml for reading data from MODS v3.4 XML metadata into Python data types.", "version": "2.0.8" }, "last_serial": 3670409, "releases": { "0.0.5": [ { "comment_text": "", "digests": { "md5": "24e8f6a49f45b2958652689c72638890", "sha256": "06abc5965450ba8192b1bc98756664c67474cc93f2ca2717a8f707185cb5349a" }, "downloads": -1, "filename": "pymods-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "24e8f6a49f45b2958652689c72638890", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13326, "upload_time": "2017-03-09T16:52:07", "url": "https://files.pythonhosted.org/packages/a4/32/55ea34c7183c39d2d2edcbc8e84202e4e3b1f6a0c9ef6c8a678e0dac967e/pymods-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae1090e9db4541cc880f55e788ca83e7", "sha256": "52e4b5816dd6fb94e96d7b601ed89220ec449f014563148e88496d353eee6eac" }, "downloads": -1, "filename": "pymods-0.0.5.tar.gz", "has_sig": false, "md5_digest": "ae1090e9db4541cc880f55e788ca83e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12449, "upload_time": "2017-03-09T16:52:09", "url": "https://files.pythonhosted.org/packages/e5/d8/458811601167395f3c9bb8068d5814d9ef8d66c953100193cb5fca4fa2d0/pymods-0.0.5.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "f3d39684f1a96f1411d196dc2bc8032f", "sha256": "9e874c0677c022d7f4a5625d63d2f466d53a719350e59c28d968addddc1e1943" }, "downloads": -1, "filename": "pymods-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f3d39684f1a96f1411d196dc2bc8032f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15885, "upload_time": "2017-03-28T16:36:48", "url": "https://files.pythonhosted.org/packages/96/21/6de8d63cb20d8148315a6b0319c2d884f0e828ccf1b3eff6d5de53d53783/pymods-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1ff541921d8db31112b1482d29cc5d8", "sha256": "f1d4b7d6dfd2b78562fede54d0714abb08ee1759046c664d7c297f2aed15b2fe" }, "downloads": -1, "filename": "pymods-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a1ff541921d8db31112b1482d29cc5d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13649, "upload_time": "2017-03-28T16:36:50", "url": "https://files.pythonhosted.org/packages/43/29/a13f18d2de1b80bbc2618fe1ac1461b03bba3798e026021c1168cc34e1af/pymods-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "915919291d8298ed83edb30ce3c3b57d", "sha256": "642c63569b870830f74f9c38d66dc2836329d9c77f17c076db7bae4126433109" }, "downloads": -1, "filename": "pymods-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "915919291d8298ed83edb30ce3c3b57d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15299, "upload_time": "2017-05-25T19:11:28", "url": "https://files.pythonhosted.org/packages/fe/9e/7067cd9d582be148f980cacf9cfa13f016ef677543c1bfd37d8c696aa79d/pymods-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9ad2c3481fc0f1c324f8eaa344c99b5", "sha256": "cd67ad25e75e696cef59d767ce0313430e610e69eed7668e90c145c8837f0cd6" }, "downloads": -1, "filename": "pymods-2.0.0.tar.gz", "has_sig": false, "md5_digest": "a9ad2c3481fc0f1c324f8eaa344c99b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13203, "upload_time": "2017-05-25T19:11:30", "url": "https://files.pythonhosted.org/packages/fb/1d/1abceebbdf8bcb347801eab16b7d588de5df51e65ada9634562676c4ac2e/pymods-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "156ea7c5e4a86fd8b8dc7b792325a489", "sha256": "3d0163403c66bccbfce3ab63fff2ab4400ec385b213fe7705089ed1e97f6eb8a" }, "downloads": -1, "filename": "pymods-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "156ea7c5e4a86fd8b8dc7b792325a489", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18161, "upload_time": "2017-05-27T19:10:27", "url": "https://files.pythonhosted.org/packages/9b/26/34f483b0fdcb25d8e335e88d8471bfbd79dde5c7c3be25c03717978f0182/pymods-2.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4019b1113e61a3f6ec4c6b98c819616b", "sha256": "981fe3bbcfdafe393d74b28d1f18a99b04c4a86a4cb10787276a561c27661f25" }, "downloads": -1, "filename": "pymods-2.0.1.tar.gz", "has_sig": false, "md5_digest": "4019b1113e61a3f6ec4c6b98c819616b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14730, "upload_time": "2017-05-27T19:10:29", "url": "https://files.pythonhosted.org/packages/85/89/d52bb692a505be42b738c994543058aa19308c2bda1997e1748a054efd0d/pymods-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "26f65900d30b0d6e4e2306ac6d8d88f4", "sha256": "cde38fa62e8ae7204c1a0c2d085239483485f26c24a191c11d0d3195d33cd8ad" }, "downloads": -1, "filename": "pymods-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "26f65900d30b0d6e4e2306ac6d8d88f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18235, "upload_time": "2017-05-31T17:35:12", "url": "https://files.pythonhosted.org/packages/11/e7/0cbb257dab41a55bc213003ec1a6d4a063d105f6b22fd24f16738fc80fe3/pymods-2.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3242788894e9a9a5294d227b5d74870", "sha256": "cc22e73695e3fa91cb2bd467596395b4040dce6069a0421d21c050f43d78cdd2" }, "downloads": -1, "filename": "pymods-2.0.2.tar.gz", "has_sig": false, "md5_digest": "d3242788894e9a9a5294d227b5d74870", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14806, "upload_time": "2017-05-31T17:35:14", "url": "https://files.pythonhosted.org/packages/f7/97/bbcde4c7344ca59acf32c4a3b551899f12c9d10197820cedb98fa3a4de99/pymods-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "e4f370f699d17dbe83789f8c6d6a6800", "sha256": "cc3f4a65c1deb2cf5fb3033609325fa921cf34a8668ba6249c3b4845a1783651" }, "downloads": -1, "filename": "pymods-2.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e4f370f699d17dbe83789f8c6d6a6800", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18151, "upload_time": "2017-05-31T20:15:14", "url": "https://files.pythonhosted.org/packages/35/fc/2e9b67623c0596677b5a61c1be05b840f65ba773b646429afa5c3f8e819c/pymods-2.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe745f888eb39489d8129b96aae04679", "sha256": "001865fd94747bf543e7fe1a589f04a6563a1bde5f8f22d6852d7918ff33e0b7" }, "downloads": -1, "filename": "pymods-2.0.3.tar.gz", "has_sig": false, "md5_digest": "fe745f888eb39489d8129b96aae04679", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14719, "upload_time": "2017-05-31T20:15:16", "url": "https://files.pythonhosted.org/packages/02/cb/b1f15d0b2613eca2a2fe6c0f184f311689fb6c4cce17967f098e2c08e849/pymods-2.0.3.tar.gz" } ], "2.0.4": [], "2.0.5": [ { "comment_text": "", "digests": { "md5": "5f4d3099c47666b4f5e8853a24805837", "sha256": "c9d7e62ff6aabec704f6a68dd1295bf6c7de04efbba40cae7ff99c15b0d10d2d" }, "downloads": -1, "filename": "pymods-2.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "5f4d3099c47666b4f5e8853a24805837", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19234, "upload_time": "2017-06-02T17:11:14", "url": "https://files.pythonhosted.org/packages/6a/01/28b125b13b6e55fdd7a1bd7a0195dc1776d03525f918513331797cbdc17d/pymods-2.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "688c9b23cfb188e54609d3c046b7f60b", "sha256": "ce8cfb0198b84f1002f518ae332766ffa17a4e12ea7ff12100fca0b6ac4b985e" }, "downloads": -1, "filename": "pymods-2.0.5.tar.gz", "has_sig": false, "md5_digest": "688c9b23cfb188e54609d3c046b7f60b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13929, "upload_time": "2017-06-02T17:11:18", "url": "https://files.pythonhosted.org/packages/ee/3f/7bef4cd254bcef3e7bcaa9ad74a9d875d40c9d2fa82ba82991eb9dac581d/pymods-2.0.5.tar.gz" } ], "2.0.6": [ { "comment_text": "", "digests": { "md5": "6263b8408bf6274167f8e59b5dc20982", "sha256": "011457ae95e547472ed87ba735c1c0290fc11d1835d93bff4a2aa920b73bdf08" }, "downloads": -1, "filename": "pymods-2.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6263b8408bf6274167f8e59b5dc20982", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25150, "upload_time": "2017-11-07T17:04:45", "url": "https://files.pythonhosted.org/packages/8c/88/ebac497df0abf9b6b0cdac4ba846920e6fe21fdd8783f7244c75edbc4fe4/pymods-2.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6942682860fab2caa17a20bd57e6175", "sha256": "36e2888cac772b751ca7ac939ce69a9c962001bacea1e07f4d4fa2bb9c47a16f" }, "downloads": -1, "filename": "pymods-2.0.6.tar.gz", "has_sig": false, "md5_digest": "f6942682860fab2caa17a20bd57e6175", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20123, "upload_time": "2017-11-07T17:04:48", "url": "https://files.pythonhosted.org/packages/11/76/69e6ed045ac2b4cdd4d8e8f9d95b855a6e074fafa147954c58a24dc79325/pymods-2.0.6.tar.gz" } ], "2.0.8": [ { "comment_text": "", "digests": { "md5": "2847b1e9a4adc2c417f82fa4fada2e15", "sha256": "b877f16098510421596b5750d40a16ec59528512803ea6331b7006bc94e5d688" }, "downloads": -1, "filename": "pymods-2.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2847b1e9a4adc2c417f82fa4fada2e15", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19481, "upload_time": "2018-03-14T20:47:16", "url": "https://files.pythonhosted.org/packages/91/3b/4378eef7be73f834cc1b59c50cc1e9dcbae730b820217dee92ef481eb1db/pymods-2.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c232f4ccb3ba3780f160c9e54a25a648", "sha256": "6b767e0b3bf0c7e1eed1d9b4efd62411f4a49645299739215690c740469d2822" }, "downloads": -1, "filename": "pymods-2.0.8.tar.gz", "has_sig": false, "md5_digest": "c232f4ccb3ba3780f160c9e54a25a648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15620, "upload_time": "2018-03-14T20:47:14", "url": "https://files.pythonhosted.org/packages/1f/a5/172ffdf2f0a5ccfdd683bed1687aac277b22e56693b66eec984bac378278/pymods-2.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2847b1e9a4adc2c417f82fa4fada2e15", "sha256": "b877f16098510421596b5750d40a16ec59528512803ea6331b7006bc94e5d688" }, "downloads": -1, "filename": "pymods-2.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2847b1e9a4adc2c417f82fa4fada2e15", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19481, "upload_time": "2018-03-14T20:47:16", "url": "https://files.pythonhosted.org/packages/91/3b/4378eef7be73f834cc1b59c50cc1e9dcbae730b820217dee92ef481eb1db/pymods-2.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c232f4ccb3ba3780f160c9e54a25a648", "sha256": "6b767e0b3bf0c7e1eed1d9b4efd62411f4a49645299739215690c740469d2822" }, "downloads": -1, "filename": "pymods-2.0.8.tar.gz", "has_sig": false, "md5_digest": "c232f4ccb3ba3780f160c9e54a25a648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15620, "upload_time": "2018-03-14T20:47:14", "url": "https://files.pythonhosted.org/packages/1f/a5/172ffdf2f0a5ccfdd683bed1687aac277b22e56693b66eec984bac378278/pymods-2.0.8.tar.gz" } ] }