{"id":25324053,"url":"https://github.com/peteradrichem/xul","last_synced_at":"2026-02-25T16:34:18.506Z","repository":{"id":81160194,"uuid":"57240128","full_name":"peteradrichem/Xul","owner":"peteradrichem","description":"XML Utilities","archived":false,"fork":false,"pushed_at":"2025-10-25T12:15:05.000Z","size":1071,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-29T02:39:36.547Z","etag":null,"topics":["dtd","lxml","python","relaxng","xml","xml-schema","xpath","xsd","xslt"],"latest_commit_sha":null,"homepage":"https://xul.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peteradrichem.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-04-27T19:17:45.000Z","updated_at":"2025-10-25T12:09:46.000Z","dependencies_parsed_at":"2025-01-19T08:19:39.396Z","dependency_job_id":"a235ab6b-1c06-4676-a5c8-f4989f5d8a46","html_url":"https://github.com/peteradrichem/Xul","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/peteradrichem/Xul","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peteradrichem%2FXul","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peteradrichem%2FXul/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peteradrichem%2FXul/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peteradrichem%2FXul/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peteradrichem","download_url":"https://codeload.github.com/peteradrichem/Xul/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peteradrichem%2FXul/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29830269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T15:41:19.027Z","status":"ssl_error","status_checked_at":"2026-02-25T15:40:47.150Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dtd","lxml","python","relaxng","xml","xml-schema","xpath","xsd","xslt"],"created_at":"2025-02-14T00:56:29.887Z","updated_at":"2026-02-25T16:34:18.479Z","avatar_url":"https://github.com/peteradrichem.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"====================\nXul -- XML Utilities\n====================\n\n.. image:: https://img.shields.io/pypi/v/xul\n   :target: https://pypi.org/project/Xul/\n   :alt: PyPI version\n\n.. image:: https://img.shields.io/pypi/wheel/xul.svg\n   :target: https://pypi.org/project/Xul/\n   :alt: Wheel\n\n.. image:: https://img.shields.io/pypi/pyversions/xul.svg\n   :target: https://pypi.org/project/Xul/\n   :alt: Python versions\n\n.. image:: https://img.shields.io/pypi/l/xul.svg\n   :target: https://pypi.org/project/Xul/\n   :alt: License\n\n.. image:: https://readthedocs.org/projects/xul/badge/\n   :target: https://xul.readthedocs.io/en/stable/\n   :alt: Documentation\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/psf/black\n   :alt: Black code style\n\n.. image:: https://img.shields.io/badge/type%20checked-mypy-039dfc\n   :target: https://mypy-lang.org\n   :alt: Typing checked by mypy\n\n.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\n   :target: https://astral.sh/ruff\n   :alt: Ruff linting\n\n.. image:: https://img.shields.io/badge/imports-isort-1674b1\n   :target: https://pycqa.github.io/isort/\n   :alt: Imports sorted by isort\n\n.. image:: https://github.com/peteradrichem/Xul/actions/workflows/code-checks.yml/badge.svg\n   :target: https://github.com/peteradrichem/Xul/actions/workflows/code-checks.yml\n   :alt: Code checks\n\n\nXul scripts\n===========\nXul is a set of XML scripts written in Python.\n\n- ``ppx``: pretty print XML\n- ``xp``: select XML nodes with XPath\n- ``transform``: transform XML with XSLT\n- ``validate``: validate XML with XSD, DTD or RELAX NG\n\nInstallation\n------------\nXul command line scripts can be installed with pip:\n\n.. code:: text\n\n        $ pip install Xul\n\nInstall Pygments_ for XML syntax highlighting (optional).\n\n.. code:: text\n\n        $ pip install Xul[syntax]\n\nDependencies\n------------\nXul uses the excellent lxml_ XML toolkit, a Pythonic binding for the C libraries\nlibxml2_ and libxslt_.\n\nDocumentation\n=============\nXul documentation can be found on `Read The Docs`_.\n\nOptions\n-------\nList the command-line options of a Xul script with ``--help``.\nFor example:\n\n.. code-block:: console\n\n   $ xp --help\n\n   usage: xp [-h] [-V] [-l | -L] [-d DEFAULT_NS_PREFIX] [-e] [-q] [-c] [-p] [-r] [-m] xpath_expr [xml_source ...]\n\n   Select nodes in an XML source with an XPath expression.\n\n   positional arguments:\n     xpath_expr            XPath expression\n     xml_source            XML source (file, \u003cstdin\u003e, http://...)\n\n   options:\n     -h, --help            show this help message and exit\n     -V, --version         show program's version number and exit\n     -m, --method          use ElementTree.xpath method instead of XPath class\n\n   file hit options:\n     output filenames to standard output\n\n     -l, -f, --files-with-hits\n                           only names of files with a result that is not false and not NaN\n                           are written to standard output\n     -L, -F, --files-without-hits\n                           only names of files with a false or NaN result, or without a result,\n                           are written to standard output\n\n   namespace options:\n     -d DEFAULT_NS_PREFIX, --default-prefix DEFAULT_NS_PREFIX\n                           set the prefix for the default namespace in XPath [default: 'd']\n     -e, --exslt           add EXSLT XML namespaces\n     -q, --quiet           don't print XML source namespaces\n\n   output options:\n     -c, --count           only a count of the result nodes is printed\n     -p, --pretty-element  pretty print the result element\n     -r, --result-xpath    also print the XPath expression of the result element (or its parent)\n\n\nW3C standards\n-------------\n- `Extensible Markup Language (XML) 1.0 \u003chttps://www.w3.org/TR/xml/\u003e`_\n- `XML Schema 1.1 \u003chttps://www.w3.org/XML/Schema\u003e`_\n- `XSL Transformations (XSLT) 1.0 \u003chttps://www.w3.org/TR/xslt-10/\u003e`_\n- `XML Path Language (XPath) 1.0 \u003chttps://www.w3.org/TR/xpath-10/\u003e`_\n- `Namespaces in XML 1.0 \u003chttps://www.w3.org/TR/xml-names/\u003e`_\n\nRelated\n-------\n- `Extensions to XSLT (EXSLT) \u003chttps://exslt.github.io/\u003e`_\n- `RELAX NG \u003chttps://relaxng.org/\u003e`_\n\n\n.. _Read The Docs: https://xul.readthedocs.io/\n.. _lxml: https://lxml.de/\n.. _libxml2: https://gitlab.gnome.org/GNOME/libxml2/-/wikis/\n.. _libxslt: https://gitlab.gnome.org/GNOME/libxslt/-/wikis/\n.. _Pygments: https://pygments.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeteradrichem%2Fxul","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeteradrichem%2Fxul","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeteradrichem%2Fxul/lists"}