Skip to main content

A python plist xml validator

Project description

validate_plist_xml

This python module will validate Apple XML Plist files

By default configured to check files with the following extensions: ('.recipe', '.plist', '.profile')

By default, runs in the current working directory against all files in that directory and all subdirectories.

This module depends upon the lxml module. (which is handled by pip automatically)

The code is found within src/validate_plist_xml/validate_plist_xml.py within the git repo.

This module checks that the plist is valid XML and meets the Apple Plist DTD here: https://www.apple.com/DTDs/PropertyList-1.0.dtd

Examples:

Run as module:

$ python3 -m validate_plist_xml
XML Syntax Error in: ./tests/bad/example-bad-xml-tags.recipe
Opening and ending tag mismatch: BAD_TAG line 4 and dict, line 15, column 8 (example-bad-xml-tags.recipe, line 15)
Failed DTD Validation: ./tests/bad/example-bad-dtd.recipe
Element dict content does not follow the DTD, expecting (key , (array | data | date | dict | real | integer | string | true | false))*, got (key astring key string key dict key string key array ), line 4
2 errors found in 3 plist xml files

Use as GitHub Action:

---
name: plistlint

on:
  push:
    paths:
      - "**.plist"
      - "**.recipe"
      - ".github/workflows/plistlint.yaml"
  pull_request:
    paths:
      - "**.plist"
      - "**.recipe"
      - ".github/workflows/plistlint.yaml"

jobs:
  plistlint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: 3.8

      - name: Install validate-plist-xml
        run: pip install validate-plist-xml

      - name: Lint Plist files
        run: python3 -m validate_plist_xml

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

validate-plist-xml-0.0.5.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

validate_plist_xml-0.0.5-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file validate-plist-xml-0.0.5.tar.gz.

File metadata

  • Download URL: validate-plist-xml-0.0.5.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.6

File hashes

Hashes for validate-plist-xml-0.0.5.tar.gz
Algorithm Hash digest
SHA256 2124056174226abb24ef33dbf5a27511b640f9fce24a8fbffde60f63bd64328b
MD5 1c7d98e879d8045342ad8f0696062fa4
BLAKE2b-256 622d663fbc4bff0f0238b20e5b84424e8ec2ddc0a4f0529f28e9a53ce3d69121

See more details on using hashes here.

File details

Details for the file validate_plist_xml-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: validate_plist_xml-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.6

File hashes

Hashes for validate_plist_xml-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 514b3a42e7c8b775eb37b69708acdb31ba89e37e584c65b00bf65772c116307d
MD5 768702c43682df69d4b67728af167503
BLAKE2b-256 24271336daea2c598aeaea62c88fc1a65b2f215aea35e87b3cd87bac3d1bf40c

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