Skip to main content

Parses changelog files

Project description

changelog-parser

Yet another python changelog parser.

  • Loads data from a CHANGELOG.md file using code like:
    import changelog
    
    with open( "CHANGELOG.md", 'rb' ) as fp:
      changes = changelog.load( fp )
    
    or
    import changelog
    
    with open( "CHANGELOG.md", 'r' ) as fp:
      changes = changelog.loads( fp.read() )
    
  • Returns it in the following schema (some types are Python objects and not valid JSON schema):
    {
      "$schema": "https://json-schema.org/draft-07/schema#",
      "title": "Loaded Changelog",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "version": {
            "oneOf": [ {
              "const": "Unreleased"
            }, {
              "type": "semver.Version",
              "description": "Python object from https://pypi.org/project/semver/"
            } ]
          },
          "date": {
            "oneOf": [ {
              "const": null
            }, {
              "type": "datetime.date",
              "description": "Python object from https://docs.python.org/3/library/datetime.html#date-objects; parsed using \"fromisoformat\""
            } ]
          },
          "yanked": {
            "type": "boolean"
          },
          "added": { "$ref": "#/$defs/change_list" },
          "changed": { "$ref": "#/$defs/change_list" },
          "depreciated": { "$ref": "#/$defs/change_list" },
          "removed": { "$ref": "#/$defs/change_list" },
          "fixed": { "$ref": "#/$defs/change_list" },
          "security": { "$ref": "#/$defs/change_list" },
          "compare_url": {
            "type": "string",
            "pattern": "^https?:\\/\\/.+"
          }
        },
        "required": [ "version", "date", "yanked" ],
        "additionalProperties": false
      },
      "$defs": {
        "change_list": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    }
    
  • Dumps data, structured like that above, to a CHANGELOG.md file using code like
    import changelog
    import semver
    from datetime import date
    
    with open( "CHANGELOG.md", 'rb' ) as fp:
      changes = changelog.load( fp )
    
    changes.insert( 0, {
       "version": semver.Version( major = 0, minor = 0, patch = 6 ),
       "date": date.today(),
       "added": [ "`dump` and `dumps` examples" ]
    } )
    
    with open( "CHANGELOG.md", 'wb' ) as fp:
      changelog.dump( changes, fp )
    
    or
    import changelog
    ...
    changelog_contents = changelog.dumps( changes )
    with open( "CHANGELOG.md", 'w' ) as fp:
      fp.write( changelog_contents )
    

Project details


Download files

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

Source Distribution

changelog-parser-0.0.8.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

changelog_parser-0.0.8-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file changelog-parser-0.0.8.tar.gz.

File metadata

  • Download URL: changelog-parser-0.0.8.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for changelog-parser-0.0.8.tar.gz
Algorithm Hash digest
SHA256 6b900d4230985df4aafed8f0649dd08a67c079ce53076f9dd5ba85c1da17903a
MD5 74a4974d0bce66fc701d0b0054f1acc3
BLAKE2b-256 351ba8872f8acfe436545816859cb5ddbf3788fd4ce0030d4560c0fc8c98a7ea

See more details on using hashes here.

File details

Details for the file changelog_parser-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for changelog_parser-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 39748c96a6f20a2dcc95a9d4abda76f44a15274bb61b780c23f63fb6cbf280bf
MD5 5d3b2541f635fd8e11e2e0ad23061301
BLAKE2b-256 6833828fc6e1bad0970d90d81720c9526d6f18c3e1726b3234dbaa6a03f6efa8

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