Skip to main content

Connexions CNXML Library

Project description

CNXML Library

This is a python library for working with CNXML content, which includes the CNXML and COLLXML formats.

Install

This library requires Python >=3.5.

Install using:

pip install -e "."

Tests

Use the tox to run the tests:

tox

If tox is not installed, run the following:

pip install tox

Edit/Validate files using atom.io

Preparation

  1. Install https://atom.io

  2. Get the cnxml RNG Schema files

    1. Download the most recent version from https://github.com/Connexions/cnxml/releases (click the “zip” link)

      • It should be in your Download foler

      • Move it to ~/.neb/

    2. Unzip the file

    3. It should have created a folder named something like cnxml-2.0.0 (with /cnxml/xml/cnxml/schema/rng/0.7/cnxml-jing.rng in it)

    4. Rename the folder to be something you are unlikely to accidentally delete (like cnxml-validation)

      • Remember the name for later when you are editing ~/.atom/config.cson

Install

  1. Start up Atom

  2. Install the linter-autocomplete-jing package

  3. Type <kbd>⌘</kbd>+<kbd>,</kbd> (for Mac) to open Settings (or click Atom, Preferences… in the menu bar)

    1. Click Install in the left-hand-side

    2. Enter linter-autocomplete-jing and click Install

    3. Alternative: run apm install linter-autocomplete-jing from the commandline

  4. Edit ~/.atom/config.cson by clicking Atom, Config in the menu bar and add the following lines (at the bottom of this document)

  5. Restart Atom

  6. Open an unzipped complete-zip. (I run atom ~/Downloads/col1234_complete From a terminal)

  7. Verify by opening an index.cnxml file and typing in <figure> somewhere in the file. If it is a valid location then it should auto-add id=”” for you

Changes to ~/.atom/config.cson:

"*":
  core:
    customFileTypes:

      # Add this to the bottom of the customFileTypes area.
      # Note: Indentation is important!
      "text.xml": [
        "index.cnxml"
      ]


  # And then this to the bottom of the file
  # 1. Make sure "linter-autocomplete-jing" only occurs once in this file!
  # 1. make sure it is indented by 2 spaces just like it is in this example.

  "linter-autocomplete-jing":
    displaySchemaWarnings: true
    rules: [
      {
        priority: 1
        test:
          pathRegex: ".cnxml$"
        outcome:
          schemaProps: [
            {
              lang: "rng"
              path: "~/.neb/cnxml-validation/cnxml/xml/cnxml/schema/rng/0.7/cnxml-jing.rng"
            }
          ]
      }
    ]

License

This software is subject to the provisions of the GNU Affero General Public License Version 3.0 (AGPL). See license.txt for details. Copyright (c) 2016 Rice University

Change Log

3.1.9

  • Add structured parsing of licenses (#56)

  • Ensure that https is acceptable in license urls (#57)

3.1.6

  • Fix derived metadata validation error (#49)

3.1.5

  • Require md:language for collxml but not cnxml (#39)

3.1.4

  • Make module titles in collection optional (#35)

3.1.3

  • Support using document title once it is removed from metadata (#33)

  • Remove some metadata unused by git storage (#32)

3.1.2

  • Update schema and add support for slug in metadata (#30)

3.1.1

  • Add support for new optional metadata (#28)

3.1.0

  • Relax required information when parsing metadata (#25)

3.0.1

  • Re-release of 3.0.0

3.0.0

  • Add tests for cnxml <md:derived-from …> validation

  • Fix failing derived-from cnxml validation tests

  • Use a self-closing md:derived-from as the valid repr

  • Move the metadata parsing from Press to cnxml (#20)

  • Add a CLI utility for extracting cnxml metadata to json (#22)

2.2.0

  • Extend validation API to accept multiple documents to validate

2.1.1

  • Tweak mdml schema to properly allow any metadata element under derived-from

2.1.0

  • Remove external pathlib dependency

  • Drop support for Python <= 2.7

  • Use versioneer for project versioning

  • Correct license in setup.py

  • Add instructions to validate with the atom.io editor

2.0.0

  • Add a commandline interface for collxml validation

  • Rename main cli function to make room for another entrypoint

  • Make the metadata section required in collxml

  • Add collxml validation function

1.1.0

  • Use a namedtuple for validation error line data.

1.0.0

  • Initial release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

cnxml-3.1.9-py3-none-any.whl (916.6 kB view details)

Uploaded Python 3

File details

Details for the file cnxml-3.1.9-py3-none-any.whl.

File metadata

  • Download URL: cnxml-3.1.9-py3-none-any.whl
  • Upload date:
  • Size: 916.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for cnxml-3.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6cc23dfb2c0dfd9cf179850f2f9274231d9406e74112cc7a28559e45fc19248d
MD5 b18f04462a07545155657108957dcaf8
BLAKE2b-256 8cbb259ac45f9629aaabb40820c2c37e82607129166c2c8f0ce7eb0dc216eef6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page