{ "info": { "author": "Jason Madden", "author_email": "jason@nextthought.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "======================\n nti.contentfragments\n======================\n\n.. image:: https://img.shields.io/pypi/v/nti.contentfragments.svg\n :target: https://pypi.python.org/pypi/nti.contentfragments/\n :alt: Latest release\n\n.. image:: https://img.shields.io/pypi/pyversions/nti.contentfragments.svg\n :target: https://pypi.org/project/nti.contentfragments/\n :alt: Supported Python versions\n\n.. image:: https://travis-ci.org/NextThought/nti.contentfragments.svg?branch=master\n :target: https://travis-ci.org/NextThought/nti.contentfragments\n\n.. image:: https://coveralls.io/repos/github/NextThought/nti.contentfragments/badge.svg\n :target: https://coveralls.io/github/NextThought/nti.contentfragments\n\n.. image:: https://readthedocs.org/projects/nticontentfragments/badge/?version=latest\n :target: https://nticontentfragments.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\nSupport for working with string-based content in a Zope3/ZTK\nenvironment.\n\nOverview\n========\n\nIn a client/server environment dealing with various types of content\nfrom users, it's important to know what not just the Python type of a\nparticular string is, but also what the *semantic* type of the string\nis: HTML, plain text, LaTeX, etc.\n\nThis package defines interfaces and classes to be able to record this\ninformation. It also features a framework for transforming between the\nvarious supported semantic types (e.g., HTML to plain text).\n\nOther features:\n\n- Support for making arbitrary incoming HTML safe (sanitizing it).\n- Support for very configurable (optionally) event-based profanity\n censoring that integrates with nti.schema/zope.schema.\n\nSee `the documentation `_ for more details.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/NextThought/nti.contentfragments", "keywords": "Content fragments semantic typing interfaces classes sanitize censor", "license": "Apache", "maintainer": "", "maintainer_email": "", "name": "nti.contentfragments", "package_url": "https://pypi.org/project/nti.contentfragments/", "platform": "", "project_url": "https://pypi.org/project/nti.contentfragments/", "project_urls": { "Homepage": "https://github.com/NextThought/nti.contentfragments" }, "release_url": "https://pypi.org/project/nti.contentfragments/1.2.0/", "requires_dist": [ "setuptools", "html5lib", "lxml (>=4.2.5)", "repoze.lru (>=0.6)", "zope.component (>=4.5.0)", "zope.event (>=4.4.0)", "zope.interface (>=4.5.0)", "zope.mimetype (>=2.3.2)", "zope.security (>=4.3.0)", "zope.cachedescriptors (>=4.3.1)", "nti.schema (>=1.12.0)", "datrie; platform_python_implementation == 'CPython' and python_version < '3.7'", "repoze.sphinx.autointerface; extra == 'docs'", "sphinx-rtd-theme; extra == 'docs'", "pyhamcrest; extra == 'test'", "zope.testing; extra == 'test'", "nti.testing; extra == 'test'", "zope.testrunner; extra == 'test'" ], "requires_python": "", "summary": "NTI ContentFragments", "version": "1.2.0" }, "last_serial": 4419392, "releases": { "0.0.0.dev0": [], "1.0.0": [ { "comment_text": "", "digests": { "md5": "e0baac1ed51f0d85ac51a756e2788042", "sha256": "23da7dbef2505270e256216f18fb80e90d612e9e545bb16eca97c42a52f57582" }, "downloads": -1, "filename": "nti.contentfragments-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e0baac1ed51f0d85ac51a756e2788042", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45309, "upload_time": "2016-08-19T15:24:37", "url": "https://files.pythonhosted.org/packages/52/4b/9130c6b14909f2132fe7b9612f95b5d1fce92ddf634d859fc97752f5f13d/nti.contentfragments-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f761036bc6111ca7124809015b0be33", "sha256": "ee02b2c2317d244972766bbc485c2c98c598c8c055bf5932c40e5ec844051ba5" }, "downloads": -1, "filename": "nti.contentfragments-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8f761036bc6111ca7124809015b0be33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44096, "upload_time": "2016-08-19T15:24:39", "url": "https://files.pythonhosted.org/packages/ce/b9/203c54eb20066f6bb11df0a7a2c64a87c74046292501a6689b284550fc9e/nti.contentfragments-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "73a1fa32886db95a34bd18b306765c6a", "sha256": "9721324054f8e23163ed03ce3f094a7afb0767f16a828c94b336ef83553af2f0" }, "downloads": -1, "filename": "nti.contentfragments-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "73a1fa32886db95a34bd18b306765c6a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45255, "upload_time": "2017-06-14T22:40:42", "url": "https://files.pythonhosted.org/packages/55/50/a47dc2f9bd72f10399a14266f2ac1bbd3bf7c4017fa77e717cb5898f9414/nti.contentfragments-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d017028349618c478f648f0e94917325", "sha256": "3dd4d0a6afc53f1b1dbf359b33857e39d910c18d506d12f1d0c8f2fb050e1b75" }, "downloads": -1, "filename": "nti.contentfragments-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d017028349618c478f648f0e94917325", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43981, "upload_time": "2017-06-14T22:40:44", "url": "https://files.pythonhosted.org/packages/df/71/d88a4e1ded2ee911692983949e489b8e6058d7ccf200b87e6459cbde919d/nti.contentfragments-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "deff629052b4e7d373dc7edc86efff66", "sha256": "a8852c052e9ee69f454041038f7e212c424505e68983622c5e7bbbc5a5b62bc5" }, "downloads": -1, "filename": "nti.contentfragments-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "deff629052b4e7d373dc7edc86efff66", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43610, "upload_time": "2018-06-29T11:07:41", "url": "https://files.pythonhosted.org/packages/79/27/91e665d304fe92c9fc906c150092c4037dddd71345573b37825c189746ec/nti.contentfragments-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75cd19175245d4f6b646ea88fb59002e", "sha256": "9651ab079b6751641c221e3e9e2fb0aeff2257260354b9a1445ccc6f0c694809" }, "downloads": -1, "filename": "nti.contentfragments-1.1.1.tar.gz", "has_sig": false, "md5_digest": "75cd19175245d4f6b646ea88fb59002e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45083, "upload_time": "2018-06-29T11:07:42", "url": "https://files.pythonhosted.org/packages/5d/9b/cd67c33ce269ab0b6d5953c929a07b90c1afb6468d4b9a681a6233d39fed/nti.contentfragments-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "3a5697311da2f3feb4ccdf5f6a1ab8aa", "sha256": "cb6c3d5b69c2e0da04fde6f7bd9392287718d692733c0b6207cfc947738b66a9" }, "downloads": -1, "filename": "nti.contentfragments-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3a5697311da2f3feb4ccdf5f6a1ab8aa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45561, "upload_time": "2018-10-15T19:33:57", "url": "https://files.pythonhosted.org/packages/63/11/2f4b2854dc03a8005802f9cb73ce1ab2f2c87a3b2d561eeea68e9bd7a5f9/nti.contentfragments-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7dd8179f7e9f41cbb3e4505fcc71e4d6", "sha256": "b2eea0fdc6d2c2b45e6785b477e2d5af7c7c2aabf748a99b59341876ea6bba3a" }, "downloads": -1, "filename": "nti.contentfragments-1.2.0.tar.gz", "has_sig": false, "md5_digest": "7dd8179f7e9f41cbb3e4505fcc71e4d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46019, "upload_time": "2018-10-15T19:33:59", "url": "https://files.pythonhosted.org/packages/33/7c/0ad2e9183456f1a3fd795db5ed2309a238e4994861a48dd6451d8ce7e021/nti.contentfragments-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3a5697311da2f3feb4ccdf5f6a1ab8aa", "sha256": "cb6c3d5b69c2e0da04fde6f7bd9392287718d692733c0b6207cfc947738b66a9" }, "downloads": -1, "filename": "nti.contentfragments-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3a5697311da2f3feb4ccdf5f6a1ab8aa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45561, "upload_time": "2018-10-15T19:33:57", "url": "https://files.pythonhosted.org/packages/63/11/2f4b2854dc03a8005802f9cb73ce1ab2f2c87a3b2d561eeea68e9bd7a5f9/nti.contentfragments-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7dd8179f7e9f41cbb3e4505fcc71e4d6", "sha256": "b2eea0fdc6d2c2b45e6785b477e2d5af7c7c2aabf748a99b59341876ea6bba3a" }, "downloads": -1, "filename": "nti.contentfragments-1.2.0.tar.gz", "has_sig": false, "md5_digest": "7dd8179f7e9f41cbb3e4505fcc71e4d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46019, "upload_time": "2018-10-15T19:33:59", "url": "https://files.pythonhosted.org/packages/33/7c/0ad2e9183456f1a3fd795db5ed2309a238e4994861a48dd6451d8ce7e021/nti.contentfragments-1.2.0.tar.gz" } ] }