Git Product home page Git Product logo

dqc_us_rules's Introduction

XBRL US Data Quality Committee Rules

dqc_us_rules is a plugin for Arelle

dqc_us_rules contains:

  • Final rules that the XBRL US Data Quality Committee approved for public release
  • Draft rules that the XBRL US Data Quality Committee approved to expose for public comment
  • Reference implementation of the rules, using Arelle as an XBRL processor
  • Unit tests for the reference implementation
  • Test suite

Deployment

  • Deploy with Arelle
  • Specify the sec directory as a plugin with Arelle

Requirements

  • Python 3.x (3.2 or greater is preferred)
  • Git 1.7+
  • C compiler toolchain (for LXML)
  • libxml2 (also for LXML)
  • Arelle

Development

It is strongly recommended that one uses a python virtual environment, such as virtualenv, to do development. To make development and management of virtual environments easier, we recommend checking out virtualenvwrapper.

The rest of this setup will assume you have installed virtualenv and virtualenvwrapper.

Creating a virtual environment

To create a virtual environment, change your directory to the root of this project, and execute the following command:

mkvirtualenv dqc -a $PWD -p <path_to_python3>

This will give you a virtual environment that you can then work within by inputting

workon dqc

any time you need to work in it.

Installing dependencies

To install the dependencies for development of only the DQC ruleset, you will use pip to install the requirements. Install the development requirements using:

pip install -r requirements-dev.txt

Running unit tests

To run the unit tests, simply run the included shell script

./run-unit-tests.sh

Running test suite

See documentation in the test suite

Rule Index

The rule definition index is here.

Proposed Changes

We actively accept, and encourage, pull requests for code changes. A list of the requirements for a pull request follows, and the request will be reviewed by the technical leads of the project. If the request is accepted it will be merged into the appropriate branch. Some requests may require Committee approval which may take longer to implement. If the request is found to be missing parts or is otherwise incomplete, comments will be noted regarding the missing or incomplete parts.

Requirements for a Pull Request(PR):

  • Branch off master, develop on your independent fork, PR back to master or other appropriate branch on the root fork.
  • Your code should pass flake8.
  • Unit test coverage is required or an explanation for why the change is already covered or not coverable.
  • Good Docstrings are required.
  • Good commit messages are required.
  • The pull request must have at least one +1 from another community member.
  • There must be no unaddressed comments.
  • PR text must be in the specified format:
    #### Changes:
    
    - Change_one with reasoning
    - Change_two with reasoning
    
    Please review: @hefischer  @andrewperkins-wf
    

License

See License for license information.
See Patent Notice for patent infringement notice.

Copyright 2015 - 2016, XBRL US Inc. All rights reserved.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.