{ "info": { "author": "Dave Foster", "author_email": "dave@axiomdatascience.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Topic :: Scientific/Engineering" ], "description": "# IOOS Compliance Checker\n\n[![Build Status](https://travis-ci.org/ioos/compliance-checker.svg)](https://travis-ci.org/ioos/compliance-checker)\n[![Build status](https://ci.appveyor.com/api/projects/status/lcc9co38pi6o45ho/branch/master?svg=true)](https://ci.appveyor.com/project/ocefpaf/compliance-checker/branch/master)\n\nThe IOOS Compliance Checker is a python based tool for data providers to check\nfor completeness and community standard compliance of local or remote\n[netCDF](https://en.wikipedia.org/wiki/NetCDF) files against\n[CF](https://en.wikipedia.org/wiki/NetCDF) and\n[ACDD](http://wiki.esipfed.org/index.php/Attribute_Convention_for_Data_Discovery_1-3)\nfile standards. The python module can be used as a command-line tool or as a\nlibrary that can be integrated into other software.\n\nA [web-based version](https://data.ioos.us/compliance/index.html) of the Compliance\nChecker was developed to enable a broader audience and improve accessibility for the\nchecker. With the web version, providers can simply provide a link or upload their\ndatasets and get the full suite of capabilities that Compliance Checker offers.\n\n\nIt currently supports the following sources and standards:\n\n| Standard | Source | .nc/OPeNDAP/.cdl | SOS |\n| ---------------------------------------------------------------------------------------------------- | ----------- | ------ | ------------------------------- |\n| [ACDD (1.1, 1.3)](http://wiki.esipfed.org/index.php/Attribute_Convention_for_Data_Discovery_1-3) | Built-in | X | - |\n| [CF (1.6)](http://cfconventions.org/cf-conventions/v1.6.0/cf-conventions.html) | Built-in | X | - |\n| IOOS SOS | Built-in | - | GetCapabilities, DescribeSensor |\n| [IOOS (1.1)](https://ioos.github.io/ioos-metadata/ioos-metadata-profile-v1-1.html#ioos-netcdf-metadata-profile-attributes) | Built-in | X | - |\n| [Glider DAC](https://github.com/ioos/ioosngdac/wiki/NGDAC-NetCDF-File-Format-Version-2) | [ioos/cc-plugin-glider](https://github.com/ioos/cc-plugin-glider) | X | - |\n| [NCEI (1.1, 2.0)](https://www.nodc.noaa.gov/data/formats/netcdf/v2.0/) | [ioos/cc-plugin-ncei](https://github.com/ioos/cc-plugin-ncei) | X | - |\n\n\n## Advice to data providers\n\nWhile the command-line version of this tool can be run in a loop, it is not necessary to check\nevery file if they are all created the same way. In short, this tool is not meant for\nidentifying bugs in your data processing stream. It is, however, intended to help you identify\nyour process procedure compliance to the standards. If you change your processing procedure\nfor any reason it would be worth your while to run one file through the Compliance Checker to\ninsure you procedure change does not impact your file\u2019s compliance.\n\nIf you feel you will need to run a batch of files through the Compliance Checker, please contact\nthe IOOS Program Office Operations Division for assistance.\n\n\n# [The Compliance Checker Web Tool](https://data.ioos.us/compliance/)\n\nThe IOOS Compliance Checker front end companion.\n\n[https://data.ioos.us/compliance/](https://data.ioos.us/compliance/)\n\nSource Code is available on GitHub:\n\n[https://github.com/ioos/compliance-checker-web](https://github.com/ioos/compliance-checker-web)\n\n## Usage\nSelect the test you want to run from the dropdown menu. Then, either upload your dataset or provide a url to a\nremote dataset (OPeNDAP) and click 'Submit'.\n\nThe output of the Compliance Checker will give you a comprehensive list of issues and the actions needed to correct them.\nYou may download the Compliance Checker report as a text file by clicking the 'Download Report' button\n\n![Compliance-Checker-Web](https://user-images.githubusercontent.com/5702672/30527267-b4bb136c-9bf4-11e7-8345-dd9b8e2e859f.png)\n\n## API\n\nIn addition to a web-based front-end for the IOOS Compliance Checker project, an API is provided for\nusers interested in batch processing files hosted via OPeNDAP. Details on how to use the API are\navailable on the Compliance Checker Web [wiki page](https://github.com/ioos/compliance-checker-web/wiki/API).\n\nHere are a couple examples:\n\n**HTML Output**\n\nhttps://data.ioos.us/compliance/api/run?report_format=html&test=acdd&url=http://sos.maracoos.org/stable/dodsC/hrecos/stationHRMARPH-agg.ncml\n\n**JSON Output**\n\nhttps://data.ioos.us/compliance/api/run?report_format=json&test=acdd&url=http://sos.maracoos.org/stable/dodsC/hrecos/stationHRMARPH-agg.ncml\n\n\n# The Compliance Checker Command Line Tool\n\n\n## Concepts & Terminology\n\nEach compliance standard is executed by a Check Suite,\nwhich functions similar to a Python standard Unit Test.\nA Check Suite runs checks against a dataset based on a metadata standard,\nreturning a list of Results which are then aggregated into a summary.\n\nEach Result has a (# passed / # total) score, a weight (HIGH/MEDIUM/LOW),\na computer-readable name, an optional list of human-readable messages,\nand optionally a list of child Results.\n\nA single score is then calculated by aggregating on the names,\nthen multiplying the score by the weight and summing them together.\n\nThe computer-readable name field controls how Results are aggregated together - in order to prevent the overall score for a Check Suite varying on the number of variables,\nit is possible to *group* Results together via the name property.\nGrouped results will only add up to a single top-level entry.\n\nSee the [Development](//github.com/ioos/compliance-checker/wiki/Development) wiki page for more details on implementation.\n\n## Installation\n\nCheck out the [Installation wiki](https://github.com/ioos/compliance-checker/wiki/Installation) for instructions on how to install.\n\n## Command Line Usage\n\nThe compliance-checker can work against local files (`.nc` files, `.cdl`\nmetadata files, .xml files of SOS GetCapabilities/DescribeSensor requests)\nor against remote URLs (OPeNDAP data URLs, SOS GetCapabilities/DescribeSensor URLs).\n\nIf you are aiming to check a netCDF-dump, also known as a CDL file, the file\nmust be named to end with a `.cdl` for the check-suite to be able to correctly\nparse it's contents.\n\n> **WARNING** The CF/ACDD checks **will access data**, so if using a remote OPeNDAP URL, please be sure the size is reasonable!\n\n```\nusage: cchecker.py [-h] [--test TEST] [--criteria [{lenient,normal,strict}]]\n [--verbose] [--skip-checks SKIP_CHECKS]\n [-f {text,html,json,json_new}] [-o OUTPUT] [-V] [-l]\n [-d DOWNLOAD_STANDARD_NAMES]\n [dataset_location [dataset_location ...]]\n\npositional arguments:\n dataset_location Defines the location of the dataset to be checked.\n\noptional arguments:\n -h, --help show this help message and exit\n --test TEST, -t TEST, --test= TEST, -t= TEST\n Select the Checks you want to perform. Defaults to\n 'acdd' if unspecified. Versions of standards can be\n specified via `-t :`. If\n `` is omitted, or is \"latest\", the latest\n version of the test standard is used.\n --criteria [{lenient,normal,strict}], -c [{lenient,normal,strict}]\n Define the criteria for the checks. Either Strict,\n Normal, or Lenient. Defaults to Normal.\n --verbose, -v Increase output. May be specified up to three times.\n --skip-checks SKIP_CHECKS, -s SKIP_CHECKS\n Specifies tests to skip. Can take the form of either\n `` or `:`. The\n first form skips any checks matching the name. In the\n second form may be specified as \"A\", \"M\",\n or \"L\". \"A\" skips all checks and is equivalent to\n calling the first form. \"M\" will only show high\n priority output from the given check and will skip\n medium and low. \"L\" will show both high and medium\n priority issues, while skipping low priority issues.\n -f {text,html,json,json_new}, --format {text,html,json,json_new}\n Output format. The difference between the 'json' and\n the 'json_new' formats is that the 'json' format has\n the check as the top level key, whereas the 'json_new'\n format has the dataset name(s) as the main key in the\n output follow by any checks as subkeys. Also, 'json'\n format can be only be run against one input file,\n whereas 'json_new' can be run against multiple files.\n -o OUTPUT, --output OUTPUT\n Output filename(s). If '-' is supplied, output to\n stdout. Can either be one or many files. If one file\n is supplied, but the checker is run against many\n files, all the output from the checks goes to that\n file (does not presently work with 'json' format). If\n more than one output file is supplied, the number of\n input datasets supplied must match the number of\n output files.\n -V, --version Display the IOOS Compliance Checker version\n information.\n -l, --list-tests List the available tests\n -d DOWNLOAD_STANDARD_NAMES, --download-standard-names DOWNLOAD_STANDARD_NAMES\n Specify a version of the cf standard name table to\n download as packaged version\n```\n\n## Examples\n\n### Check a local file against CF 1.6\n```\n$ compliance-checker --test=cf:1.6 compliance_checker/tests/data/examples/hycom_global.nc\n\n\n--------------------------------------------------------------------------------\n IOOS Compliance Checker Report\n cf:1.6 check\n--------------------------------------------------------------------------------\n Corrective Actions\nhycom_global.nc has 9 potential issues\n\n\n Errors\n--------------------------------------------------------------------------------\nName Reasoning\n\u00a73.2 Either long_name or standard_name Attribute long_name or/and standard_name\nis highly recommended for variable time: is highly recommended for variable time\n\u00a74.3.1 depth is a valid vertical vertical coordinates not defining\ncoordinate: pressure must include a positive\n attribute that is either 'up' or 'down'\n\n\n Warnings\n--------------------------------------------------------------------------------\nName Reasoning\n\u00a72.6.1 Global Attribute Conventions Conventions global attribute does not\nincludes CF-1.6: contain \"CF-1.6\". The CF Checker only\n supports CF-1.6 at this time.\n\u00a72.6.2 Recommended Attributes: institution should be defined source\n should be defined references should be\n defined\n\u00a72.6.2 Recommended Global Attributes: global attribute history should exist\n and be a non-empty string\n\u00a78.1 Packed Data defined by water_u Attributes add_offset and scale_factor\ncontains valid packing: are not of type float or double.\n\u00a78.1 Packed Data defined by water_v Attributes add_offset and scale_factor\ncontains valid packing: are not of type float or double.\n```\n\n### Check a remote file against ACDD 1.3\n\nThe remote dataset url is taken from the Data URL section of an OPeNDAP endpoint.\n\n```shell\n$ compliance-checker --test=acdd:1.3 \"http://sos.maracoos.org/stable/dodsC/hrecos/stationHRMARPH-agg.ncml\"\n```\n\n### Write results to text file\n\n```shell\n$ compliance-checker --test=acdd:1.3 --format=text --output=/tmp/report.txt compliance_checker/tests/data/examples/hycom_global.nc\n```\n\n### Write results to JSON file\n\n```shell\n$ compliance-checker --test=acdd:1.3 --format=json --output=/tmp/report.json compliance_checker/tests/data/examples/hycom_global.nc\n```\n\n### Write results to HTML file\n\n```shell\n$ compliance-checker --test=acdd:1.3 --format=html --output=/tmp/report.html compliance_checker/tests/data/examples/hycom_global.nc\n```\n\n### Output text from multiple input files to one output file\n\n```\n$ compliance-checker --test=cf:1.6 --format text --output=/tmp/combined_output.txt compliance_checker/tests/data/examples/hycom_global.nc compliance_checker/tests/data/examples/ww3.nc\n```\n\n### Output html and text files from multiple input files (part 1)\nIn this case you'll get 2 files ```/tmp/combined_output.txt``` and ```/tmp/combined_output.html``` that contain cf check results for both input files because you only specified 1 output filename.\n```\n$ compliance-checker --test=cf:1.6 --format text --format html --output=/tmp/combined_output.txt compliance_checker/tests/data/examples/hycom_global.nc compliance_checker/tests/data/examples/ww3.nc\n```\n\n### Output html and text files from multiple input files (part 2)\nIn this case you'll get 4 files ```/tmp/hycom.txt```, ```/tmp/hycom.html```, ```/tmp/ww3.txt```, and ```/tmp/ww3.html``` that contain cf check results because you specified as many output filenames as input filenames.\n```\n$ compliance-checker --test=cf:1.6 --format text --format html --output=/tmp/hycom.txt --output=/tmp/ww3.txt compliance_checker/tests/data/examples/hycom_global.nc compliance_checker/tests/data/examples/ww3.nc\n```\n\n### Download a particular CF standard names table for use in the test\n\n**Note**\nDuring the CF test, if a file has a particular version of the cf standard name table specified in the global attributes\n(i.e. ```:standard_name_vocabulary = \"CF Standard Name Table v30\" ;```) that doesn't match the packaged version, it will\ntry to download the specified version. If it fails, it will fall back to packaged version.\n\n```\n$ compliance-checker -d 35\n\nDownloading cf-standard-names table version 35 from: http://cfconventions.org/Data/cf-standard-names/35/src/cf-standard-name-table.xml\n```\n\nAlternatively, you can specify an absolute path to a standard name table you may have locally in an environment variable named CF_STANDARD_NAME_TABLE and the compliance checker will use that version instead.\n\n\n## Python Usage\n\nIf you are interested in incorporating the IOOS Compliance Checker into your own python projects, check out the following python code example:\n```python\nfrom compliance_checker.runner import ComplianceChecker, CheckSuite\n\n# Load all available checker classes\ncheck_suite = CheckSuite()\ncheck_suite.load_all_available_checkers()\n\n# Run cf and adcc checks\npath = '/path/or/url/to/your/dataset'\nchecker_names = ['cf', 'acdd']\nverbose = 0\ncriteria = 'normal'\noutput_filename = '/output/report.json'\noutput_format = 'json'\n\"\"\"\nInputs to ComplianceChecker.run_checker\n\npath Dataset location (url or file)\nchecker_names List of string names to run, should match keys of checkers dict (empty list means run all)\nverbose Verbosity of the output (0, 1, 2)\ncriteria Determines failure (lenient, normal, strict)\noutput_filename Path to the file for output\noutput_format Format of the output\n\n@returns If the tests failed (based on the criteria)\n\"\"\"\nreturn_value, errors = ComplianceChecker.run_checker(path,\n checker_names,\n verbose,\n criteria,\n output_filename=output_filename,\n output_format=output_format)\n\n# Open the JSON output and get the compliance scores\nwith open(output_filename, 'r') as fp:\n cc_data = json.load(fp)\n scored = cc_data[cc_test[0]]['scored_points']\n possible = cc_data[cc_test[0]]['possible_points']\n log.debug('CC Scored {} out of {} possible points'.format(scored, possible))\n```\n\n## Compliance Checker Plug-Ins\n\nSeparate Plug-ins have been developed to complement the master Compliance Checker tool with\nspecifications for preparing data to be submitted to different data assembly centers.\nThe version numbering of these plug-ins are not necessarily link to the version of the\nmaster Compliance Checker, but they are all designed to run with the master Compliance Checker tool.\n\n### Current Plug-in Releases:\n\n- [GliderDAC](https://github.com/ioos/cc-plugin-glider/releases)\n\nThis is a checker for [GliderDAC](https://github.com/ioos/ioosngdac/wiki/NGDAC-NetCDF-File-Format-Version-2) files\n\n- [NCEI](https://github.com/ioos/cc-plugin-ncei/releases) - [link](https://github.com/ioos/cc-plugin-ncei)\n\nThis is a checker for NCEI netCDF Templates [v1.1](https://www.nodc.noaa.gov/data/formats/netcdf/v1.1/) and [v2.0](https://www.nodc.noaa.gov/data/formats/netcdf/v2.0/) files.\n\nThese plug-ins must be installed separately but work on top of the base compliance checker software.\n\n```\npip install cc-plugin-ncei\n```\n\nCheck to see if it installed correctly, list the tests:\n\n```\ncompliance-checker -l\n```\n\nYou should see\n\n```\n IOOS compliance checker available checker suites (code version):\n - ncei-grid (2.1.0)\n - ncei-grid:1.1 (2.1.0)\n - ncei-grid:2.0 (2.3.0)\n - ncei-grid:latest (2.1.0)\n - ncei-point (2.3.0)\n - ncei-point:1.1 (2.1.0)\n - ncei-point:2.0 (2.3.0)\n etc ....\n```\n\nOnce installing the plug-in the usage is similar to the built in checkers.\n\n### Examples of how to use the Plug-Ins\n\n1. Run the NCEI Point check on a THREDDS endpoint\n\n```python\ncompliance-checker -t ncei-point -v \"https://data.nodc.noaa.gov/thredds/dodsC/testdata/mbiddle/GOLD_STANDARD_NETCDF/1.1/NODC_point_template_v1.1_2016-06-15_133710.844375.nc\"\n```\n\n2. Run NCEI Trajectory Profile Orthogonal Check on local dataset\n\n```python\ncompliance-checker -t ncei-trajectory-profile-orthogonal -v ~/data/sample-trajectory-profile.nc\n\n```\n\n3. Outputting JSON from a gridded file check\n```\ncompliance-checker -t ncei-grid -f json -o ~/Documents/sample_grid_report.json ~/Documents/sample_grid_report.nc\n```\n\n\n## Contributors\n\n- [Dave Foster](https://github.com/daf) <dave@axiomdatascience.com>\n- [Dan Maher](https://github.com/danieljmaher) <daniel.maher@gdit.com>\n- [Luke Campbell](https://github.com/lukecampbell) <luke.campbell@gdit.com>\n- [Kyle Wilcox](https://github.com/kwilcox) <kyle@axiomdatascience.com>\n- [Ben Adams](https://github.com/benjwadams) <ben.adams@rpsgroup.com>\n- [Bob Fratantonio](https://github.com/bobfrat) <robert.fratantonio@rpsgroup.com>\n\nAnd many more testers!\n\nPortions of the CF checker are based on Michael Decker's work, http://repositories.iek.fz-juelich.de/hg/CFchecker/\n\n## Disclaimer\n\nThe objective of the IOOS Compliance Checker is to check your file against our interpretation of select dataset metadata standards to use as a guideline in generating compliant files. The compliance checker should not be considered the authoritative source on whether your file is 100% \"compliant\". Instead, we recommend that users use the results as a guide to work towards compliance.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ioos/compliance-checker", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "compliance-checker", "package_url": "https://pypi.org/project/compliance-checker/", "platform": "", "project_url": "https://pypi.org/project/compliance-checker/", "project_urls": { "Homepage": "https://github.com/ioos/compliance-checker" }, "release_url": "https://pypi.org/project/compliance-checker/4.2.2/", "requires_dist": null, "requires_python": "", "summary": "Checks Datasets and SOS endpoints for standards compliance", "version": "4.2.2" }, "last_serial": 4874958, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b74d6fe027170fb4408eae27ee59adf1", "sha256": "fa01a50e14321249b2e3779a354bba062997bdbbe22d032e0d6f442e6b0ac3f0" }, "downloads": -1, "filename": "compliance-checker-0.1.tar.gz", "has_sig": false, "md5_digest": "b74d6fe027170fb4408eae27ee59adf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 190617, "upload_time": "2014-04-08T02:30:23", "url": "https://files.pythonhosted.org/packages/cb/94/3369208e0fc52c42dc987e3e37443530093dbdfbdaa27a701432cd31abba/compliance-checker-0.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "73ce1226f55df673e0949715afd5ce8f", "sha256": "3028788ce000907c8dcdc10c1172652c5ae9c60f9767ab1ef541be7c7462eff6" }, "downloads": -1, "filename": "compliance-checker-0.2.0.tar.gz", "has_sig": false, "md5_digest": "73ce1226f55df673e0949715afd5ce8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 190803, "upload_time": "2014-04-09T14:59:14", "url": "https://files.pythonhosted.org/packages/e1/e6/4569be3ed357b33502a126334f36e1fa55191384d32aff0d35cddd2003c3/compliance-checker-0.2.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "2f90064f9264cab60fee319a45ac652f", "sha256": "67f08e0d93136ae129154fe1ed736806066a00feb025aaa78469279e60819c82" }, "downloads": -1, "filename": "compliance-checker-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2f90064f9264cab60fee319a45ac652f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 723434, "upload_time": "2014-07-18T18:30:43", "url": "https://files.pythonhosted.org/packages/bf/6e/d6c0426014ec585825075e032298f16139c01c0540e9f6cd374e83b73ffd/compliance-checker-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "2a9201969d743370a72f878d1157da36", "sha256": "f73a4aacf0ddf38a7f140650ec7500dfe25b203cff675a844c65182929707447" }, "downloads": -1, "filename": "compliance-checker-1.1.0.tar.gz", "has_sig": false, "md5_digest": "2a9201969d743370a72f878d1157da36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 540158, "upload_time": "2015-05-22T17:40:27", "url": "https://files.pythonhosted.org/packages/67/3e/1f2aaec413bdc49d4422d5ffa067694f0148312f41910ff157fb1a253912/compliance-checker-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "b5484196481213393a91cc1c0bc91321", "sha256": "af9d292179e5ccc3b317218e1c6eecdbb5082e48147d8f4ab980ff51aabecca1" }, "downloads": -1, "filename": "compliance-checker-1.1.1.tar.gz", "has_sig": false, "md5_digest": "b5484196481213393a91cc1c0bc91321", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 545694, "upload_time": "2015-05-29T16:01:30", "url": "https://files.pythonhosted.org/packages/73/09/3a1ec4b8b8fe2c3bb3b0fdf79799aeda677b352c24bd233e1aea2ab21d59/compliance-checker-1.1.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "783cfa85acc6870dc3adf75b60418b72", "sha256": "9589864266be9ccd051389bfdfc84b056809ffd9036ddbb91e5372b88df0fd0a" }, "downloads": -1, "filename": "compliance-checker-2.0.0.tar.gz", "has_sig": false, "md5_digest": "783cfa85acc6870dc3adf75b60418b72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 594434, "upload_time": "2015-11-03T19:04:28", "url": "https://files.pythonhosted.org/packages/f6/c2/c7a04cf544c5b5b9b75a07e400614629fd297e3897663139ccc8b7509eea/compliance-checker-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "e183eda66050c30f107efbc674538ae0", "sha256": "b18f2c475d4bf3601de469f9b08bcb3cfb18abe3b51742f45ec40a421d859f15" }, "downloads": -1, "filename": "compliance-checker-2.1.0.tar.gz", "has_sig": false, "md5_digest": "e183eda66050c30f107efbc674538ae0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 580940, "upload_time": "2016-02-29T13:41:29", "url": "https://files.pythonhosted.org/packages/9f/f1/5623dd5093ad5081001444d3a42329de564e9aef6e3218f85ebd84588911/compliance-checker-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "753480e82f9ef50af57eada937bda8ef", "sha256": "69d00942edcc8dc0a7b2e3ceede05f030a62fe22b925626a23527d50bc71d96e" }, "downloads": -1, "filename": "compliance-checker-2.2.0.tar.gz", "has_sig": false, "md5_digest": "753480e82f9ef50af57eada937bda8ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 589740, "upload_time": "2016-05-03T16:54:15", "url": "https://files.pythonhosted.org/packages/1c/53/d2d7306b3b8fa953f39b88be29fae293a02f4492850de7819a317282e87d/compliance-checker-2.2.0.tar.gz" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "2218fee6cb98e02a1c5477a77325cf36", "sha256": "798fdfcbfcaf2f20c602bd90e954d3990efb5954dee7f4b519b6b2945057c137" }, "downloads": -1, "filename": "compliance-checker-2.2.1.tar.gz", "has_sig": false, "md5_digest": "2218fee6cb98e02a1c5477a77325cf36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 608816, "upload_time": "2016-09-15T13:39:14", "url": "https://files.pythonhosted.org/packages/1b/8a/9f9397c55a94b859daf978f52825572eea4d2bb013028206ad3cbaaab359/compliance-checker-2.2.1.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "7695227b44dcbbf146c9b6362e7d7e0b", "sha256": "2b059aa7b7f3b1b9fcdcd26f832b882f4d0f5d5cc2ab64b980c2f749f35b169e" }, "downloads": -1, "filename": "compliance-checker-2.3.0.tar.gz", "has_sig": false, "md5_digest": "7695227b44dcbbf146c9b6362e7d7e0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 311119, "upload_time": "2016-10-03T18:59:34", "url": "https://files.pythonhosted.org/packages/41/ed/33f7857392cde9c2ad061b7d913473eadfac3c15f859d06a81f565371371/compliance-checker-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "ede877d4b2e5fd0d32723e40eb538977", "sha256": "4d1f7876124565d99c905d5c998759dd197a9f970d76938ded1cde20eff51919" }, "downloads": -1, "filename": "compliance-checker-2.3.1.tar.gz", "has_sig": false, "md5_digest": "ede877d4b2e5fd0d32723e40eb538977", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1011363, "upload_time": "2016-11-03T15:16:30", "url": "https://files.pythonhosted.org/packages/f7/a5/f1599e657fc936cc0ea1ef39fe166b547a2f8ab58ae3ab477ab372540c6e/compliance-checker-2.3.1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "3b812ee094fe4c36016d60054797fd3a", "sha256": "5100fee83cd9b743b1bf28473df193020b3ab44b1104d5ca84dc93677f533813" }, "downloads": -1, "filename": "compliance-checker-3.0.0.tar.gz", "has_sig": false, "md5_digest": "3b812ee094fe4c36016d60054797fd3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 428191, "upload_time": "2016-11-14T13:24:52", "url": "https://files.pythonhosted.org/packages/55/b6/ba2a5c5dbe7604a37413c70f53b705c7d4dc29c6cb29fd0851cf113c0906/compliance-checker-3.0.0.tar.gz" } ], "3.0.0rc1": [ { "comment_text": "", "digests": { "md5": "4e6cb8d568b9479654cad600b5dd7998", "sha256": "f8196da2d1b8cfda016fbca3fecfee03f3b1fa42e0aee2ff95fe3fbad42c58ba" }, "downloads": -1, "filename": "compliance-checker-3.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "4e6cb8d568b9479654cad600b5dd7998", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 423891, "upload_time": "2016-11-01T14:39:37", "url": "https://files.pythonhosted.org/packages/d4/5e/437f8c24cdeb82a6d6f5d4fec0e48b7828bf956212da7b84a113ced45d18/compliance-checker-3.0.0rc1.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "43bdae03bd6155298955127bc8bf59c7", "sha256": "35878022c98782364e38656ae29452ee10544915ca30b023e3ce0708b025f568" }, "downloads": -1, "filename": "compliance-checker-3.0.1.tar.gz", "has_sig": false, "md5_digest": "43bdae03bd6155298955127bc8bf59c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427943, "upload_time": "2017-02-02T20:05:16", "url": "https://files.pythonhosted.org/packages/21/c4/70c4c90da4a942871686274407e67e310b9a126122b33cb0c83186b315bd/compliance-checker-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "959b0e128b763c18f25a5689cecd94d6", "sha256": "36a811bed7515568747cab2bc43e9450a7113f476593a96954097dbc0afae5ad" }, "downloads": -1, "filename": "compliance-checker-3.0.2.tar.gz", "has_sig": false, "md5_digest": "959b0e128b763c18f25a5689cecd94d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 427977, "upload_time": "2017-04-11T13:50:19", "url": "https://files.pythonhosted.org/packages/c9/2d/3168902b3b11b533d75bb74e8931005dd723d5059b374785a6f8c84f484c/compliance-checker-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "d2a649873cebbfea7268e2304a508a23", "sha256": "e91b445673bb84f505f18ebb6f31367fae6dc5c9c465a05041469fceab59431e" }, "downloads": -1, "filename": "compliance-checker-3.0.3.tar.gz", "has_sig": false, "md5_digest": "d2a649873cebbfea7268e2304a508a23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 429001, "upload_time": "2017-04-26T14:47:02", "url": "https://files.pythonhosted.org/packages/04/5b/b6ef7a27efa9bd221492635c216f4e712f22e56ebfcc90955b872e28e607/compliance-checker-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "ea2613bf755227c3304ef78a40f3d519", "sha256": "1f5cba3ac6249a9c08d82697901833f3b9273affe0813d91c05ce05739502f78" }, "downloads": -1, "filename": "compliance-checker-3.0.4.tar.gz", "has_sig": false, "md5_digest": "ea2613bf755227c3304ef78a40f3d519", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 454295, "upload_time": "2017-05-23T14:44:47", "url": "https://files.pythonhosted.org/packages/75/f6/a1e6471bfdb39df9d7fd2961ba5bee8302a203b3c864a35431f3e2249983/compliance-checker-3.0.4.tar.gz" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "66a3a0177a89b3d6cf79a85c9dccedf3", "sha256": "1dc589ea677cbc17b98a6bd3fbe43b2f5ec827b6af8873709121ec76199fc36d" }, "downloads": -1, "filename": "compliance_checker-3.1.1-py2.7.egg", "has_sig": false, "md5_digest": "66a3a0177a89b3d6cf79a85c9dccedf3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 645729, "upload_time": "2017-10-13T21:59:29", "url": "https://files.pythonhosted.org/packages/1d/62/ee49c669883cd84e1b1f1b2cb93b58ef60a873a49d2ccb857af6d1c0278a/compliance_checker-3.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "52541dbd99015bafd4b06b05513711bf", "sha256": "d4aae3d3e58e7e0fead1249579fd0dc063e5c2f7605d8455fecd9d1b4cf1effa" }, "downloads": -1, "filename": "compliance-checker-3.1.1.tar.gz", "has_sig": false, "md5_digest": "52541dbd99015bafd4b06b05513711bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 452077, "upload_time": "2017-10-13T21:59:28", "url": "https://files.pythonhosted.org/packages/ff/f2/98eb0bd94c81bdbcd5831011f74421c342a87dd680ca7cb8d4e606f4c0e5/compliance-checker-3.1.1.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "e92976b788c9deb81cddb49ad6a89a88", "sha256": "040a033025baeff41385b29dc504db0463ea531604c5c53a7afa9d88358cb8c1" }, "downloads": -1, "filename": "compliance-checker-4.0.0.tar.gz", "has_sig": false, "md5_digest": "e92976b788c9deb81cddb49ad6a89a88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 503563, "upload_time": "2018-04-13T19:46:38", "url": "https://files.pythonhosted.org/packages/96/59/8cdbb31cec514ec31ee2c4c0d65a5b7599c3b3c8b3d11d0b497bab2b63e5/compliance-checker-4.0.0.tar.gz" } ], "4.0.1": [ { "comment_text": "", "digests": { "md5": "5720b36d33045d040d78c03fd1bb2cc2", "sha256": "d9955d82a0b8b269b1ad280d8db3fc85a4e29a27a089deeea5eba27691df4f68" }, "downloads": -1, "filename": "compliance_checker-4.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5720b36d33045d040d78c03fd1bb2cc2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 567922, "upload_time": "2018-05-18T20:18:33", "url": "https://files.pythonhosted.org/packages/de/64/fed02e77aab359f70bb0a4a0502bc1e8368fed39d63794fd18d05827db7d/compliance_checker-4.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23f62111777aacdea497db2d0c310a06", "sha256": "caf1a4a9b78caa153b09c763ef47de4bc2399768815f44ed4ed73c89ccff96f4" }, "downloads": -1, "filename": "compliance-checker-4.0.1.tar.gz", "has_sig": false, "md5_digest": "23f62111777aacdea497db2d0c310a06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 519223, "upload_time": "2018-05-18T20:18:35", "url": "https://files.pythonhosted.org/packages/0a/ec/781418c270f6409dd6e806a3ca7310bdada2b6b8d6327198918cfd317848/compliance-checker-4.0.1.tar.gz" } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "ca1bfe8e95dd251c9ecb981fa2de704e", "sha256": "30e748309a7452b779558a1cc300295ae55b5754d91db3c988f9cac54b67a093" }, "downloads": -1, "filename": "compliance_checker-4.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ca1bfe8e95dd251c9ecb981fa2de704e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 570822, "upload_time": "2018-08-29T20:45:49", "url": "https://files.pythonhosted.org/packages/0e/2d/0af07177bbdaeb6e8684bc19509b3287b54304babed8fc296cd61a3f72cc/compliance_checker-4.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25be81fb3ad5ec2003ec44daba28d381", "sha256": "6382c11c238cbc83d0620376eb2e326bccd3fb0234bf4d5858fb2e65fac14d08" }, "downloads": -1, "filename": "compliance-checker-4.1.0.tar.gz", "has_sig": false, "md5_digest": "25be81fb3ad5ec2003ec44daba28d381", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 522273, "upload_time": "2018-08-29T20:45:50", "url": "https://files.pythonhosted.org/packages/e0/60/4ab3ea40cf52ed3156b9371dabb1aaa4d35acae2de40fd7a86edef44962b/compliance-checker-4.1.0.tar.gz" } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "dc257797df13ae5add5d777d71fc03cb", "sha256": "eef6087a6cecc22a60810414eb9b56dcede93b350a1dbf4de5888f0eed332e1b" }, "downloads": -1, "filename": "compliance_checker-4.1.1-py2.7.egg", "has_sig": false, "md5_digest": "dc257797df13ae5add5d777d71fc03cb", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 691814, "upload_time": "2018-08-30T20:28:58", "url": "https://files.pythonhosted.org/packages/d7/81/d7603aae40eab62bc0dee5b2dc58d7eb2f4b914ae0dc85bc3958dbfd94c4/compliance_checker-4.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "4fa933abaebdbc5ae867283c4520d847", "sha256": "53d5aa26a4195bd902e0f44a92d64c06341fdf0f2f9c0d6bdb9b7bbc49034330" }, "downloads": -1, "filename": "compliance_checker-4.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4fa933abaebdbc5ae867283c4520d847", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 563350, "upload_time": "2018-08-30T20:28:54", "url": "https://files.pythonhosted.org/packages/db/fc/da981db2f3c5af23779c0226b7e546cf7e601680d45a18088cc4b4a55991/compliance_checker-4.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95851f153e081e79a4fbeebfa98792ec", "sha256": "c1c2936f8f9066a48f11dc5859ebadb1c8074c993910c7decb407690d701e416" }, "downloads": -1, "filename": "compliance-checker-4.1.1.tar.gz", "has_sig": false, "md5_digest": "95851f153e081e79a4fbeebfa98792ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 521970, "upload_time": "2018-08-30T20:28:56", "url": "https://files.pythonhosted.org/packages/10/76/22ef5075321961010293ad89c2ff1f2fb4e796a25bbb887dda1804690a39/compliance-checker-4.1.1.tar.gz" } ], "4.2.0": [ { "comment_text": "", "digests": { "md5": "e5e5e1eca1d9b8c7f482f9874d6e73d8", "sha256": "e38fbf2a6d56166c075e68fce5fbaeb53924d111833f976e5d8f46c5d3e4c5af" }, "downloads": -1, "filename": "compliance-checker-4.2.0.tar.gz", "has_sig": false, "md5_digest": "e5e5e1eca1d9b8c7f482f9874d6e73d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 525592, "upload_time": "2019-02-06T22:00:48", "url": "https://files.pythonhosted.org/packages/84/8f/05ac5432c80ecb1fb46e2c66428e9db22d8654e573d560e4db88d9bc9890/compliance-checker-4.2.0.tar.gz" } ], "4.2.1": [ { "comment_text": "", "digests": { "md5": "f10f1ac418c82930207f4c576bcdfbbb", "sha256": "1cd36cd46fed5bd882d8ddee1a7bcf4cb941d223484a8cbe02e45a7dd3f41ce9" }, "downloads": -1, "filename": "compliance-checker-4.2.1.tar.gz", "has_sig": false, "md5_digest": "f10f1ac418c82930207f4c576bcdfbbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 526059, "upload_time": "2019-02-18T22:00:34", "url": "https://files.pythonhosted.org/packages/e4/35/309bde5661ef0372ebd7d3c7aa54eb7364967ce7b906ab64dda9656dc3a4/compliance-checker-4.2.1.tar.gz" } ], "4.2.2": [ { "comment_text": "", "digests": { "md5": "76919c64244a9c967a10ecf0ed73d21f", "sha256": "5ed577d5a5a3edb74ad7e852b2f0ed737b32baffcae4b897251ccb0132a00b81" }, "downloads": -1, "filename": "compliance-checker-4.2.2.tar.gz", "has_sig": false, "md5_digest": "76919c64244a9c967a10ecf0ed73d21f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 526106, "upload_time": "2019-02-27T15:58:39", "url": "https://files.pythonhosted.org/packages/1f/2b/7e99ecaf31ebefa94ec4cd5332fa632b081b2af46a6f164df37c602cf997/compliance-checker-4.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "76919c64244a9c967a10ecf0ed73d21f", "sha256": "5ed577d5a5a3edb74ad7e852b2f0ed737b32baffcae4b897251ccb0132a00b81" }, "downloads": -1, "filename": "compliance-checker-4.2.2.tar.gz", "has_sig": false, "md5_digest": "76919c64244a9c967a10ecf0ed73d21f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 526106, "upload_time": "2019-02-27T15:58:39", "url": "https://files.pythonhosted.org/packages/1f/2b/7e99ecaf31ebefa94ec4cd5332fa632b081b2af46a6f164df37c602cf997/compliance-checker-4.2.2.tar.gz" } ] }