Skip to content

Tools for working with json, for instance validating with json-schema (https://json-schema.org)

License

Notifications You must be signed in to change notification settings

spraakbanken/python-json-tools

Repository files navigation

sb-json-tools

PyPI version PyPI - Python Version PyPI - Downloads

Maturity badge - level 3 Stage

Code Coverage

CI(check) CI(release) CI(scheduled) CI(test)

Tools for working with json (especially) json-arrays.

Uses orjson if present, otherwise standard json.

Usage

Installation

pip install sb-json-tools

json-val (lib: sb_json_tools.jt_val)

Allows you to validate iterables of json-objects according to json-schema

Regular and async functions.

json-diff (lib: sb_json_tools.jsondiff)

Allows you to compare two json-objects and get a report how they differ, if they do.

json-val

Command-line tool to validate a json-file with a schema json-schema.

Development

After cloning the repo, just run

make dev
make test

to setup a virtual environment, install dev dependencies and run the unit tests.

Note: If you run the command in a activated virtual environment, that environment is used instead.

Make a release

  1. Make changes and commit.

  2. Update CHANGELOG.md:

    1. If git-cliff is installed, run make prepare-release and then manually update the CHANGELOG.md. Commit the changes. (If the commit message start with chore(release): prepare for, git-cliff will ignore the commit.)

    2. Without git-cliff add the relevant information with format below, above the latest release.

      ## [unreleased]
      
      ### Added
      - new features
      
      ### Fixed
      - fixed a bug

      Commit the changes. (If the commit message start with chore(release): prepare for, git-cliff will ignore the commit.)

  3. Bump the version:

    # Install dependencies for bumping the version
    make install-dev-release
    # Bump the version, choose what part by giving part= at command line
    # Bump the patch part [X.Y.Z -> X.Y.(Z+1)]
    make bumpversion
    # bump the minor part [X.Y.Z -> X.(Y+1).0]
    make bumpversion part=minor
    # bump the major part [X.Y.Z -> (X+1).0.0]
    make bumpversion part=major

    bump-my-version will commit and tag the bumping.

  4. Push the tag to GitHub for the release workflow to build and publish the release to PyPi.

    1. Either by running make publish (or make publish branch=<BRANCH_NAME> if not on main)
    2. Or by running git push origin main --tags

About

Tools for working with json, for instance validating with json-schema (https://json-schema.org)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published