Skip to main content

CSV Processor

Project description

PyPI Travis Codecov Documentation Supported Python versions License

Generic CSV Processing for Django Apps

Overview

This library provides a CSVProcessor class which should be subclassed to implement your own per-row processing of CSV files. At minimum, override process_row(row).

The mixins support optional checksums of arbitrary columns, and asynchronous processing of files using Celery.

Documentation

Super CSV is a stand alone library that can be used for CSV management, both syncronous and async.

Testing

make requirements

Will install all pre-requisuites.

make test

Runs the unit tests in local environment.

Using with Docker Devstack

Prerequisite: Have your Open edX https://github.com/edx/devstack properly installed. Note: When you see “from inside the lms” below, it means that you’ve run make lms-shell from your devstack directory and are on a command prompt inside the LMS container.

  1. Clone this repo into ../src/ directory (relative to your “devstack” repo location). This will mount the directory in a way that is accessible to the lms container.

  2. Clone inside the lms, uninstall super-csv and reinstall your local copy. You can just copy the following line. This is necessary if one wants to use latest version for testing/development purposes:

    pip uninstall super-csv -y; pip install -e /edx/src/super-csv
  3. Setup dev environment (since virtual environments are recommended for python development, here is an example of using virtualenv. Other tools would work as well). By default, edx containers come with virtualenv preinstalled

    cd /edx/src/super-csv
    virtualenv super-csv-env
    source super-csv-env/activate
    make requirements
  4. That’s it.

License

The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome.

Please read How To Contribute for details.

Even though they were written with edx-platform in mind, the guidelines should be followed for Open edX code in general.

The pull request description template should be automatically applied if you are creating a pull request from GitHub. Otherwise you can find it at PULL_REQUEST_TEMPLATE.md.

The issue report template should be automatically applied if you are creating an issue on GitHub as well. Otherwise you can find it at ISSUE_TEMPLATE.md.

Reporting Security Issues

Please do not report security issues in public. Please email security@edx.org.

Getting Help

Have a question about this repository, or about Open edX in general? Please refer to this list of resources if you need any assistance.

Change Log

Unreleased

[0.9.5] - 2019-10-08

  • Decode the input file before passing to DictReader if necessary

[0.9.4] - 2019-09-24

  • Let the DeferrableMixin.save() method take an optional operating_user parameter.

[0.9.3] - 2019-09-20

  • Commit after CSVOperation creation so that async celery tasks can find the operation record when they start.

[0.9.2] - 2019-09-17

  • If a class inheriting from DeferrableMixin has a field user_id, use that user for the CSVOperation

[0.9.1] - 2019-07-19

  • Reverses the ordering of CSV operation history rows

[0.8] - 2019-07-22

  • Changes checksum column to avoid CSV quoting issues

[0.7.1] - 2019-07-19

  • Exposes additional fields in serialized history of operations re:degree of success of the operation

[0.5.0] - 2019-07-02

  • Exposes methods for serializing history of operations for particular processors.

[0.1.0] - 2019-05-15

Added

  • First release on PyPI.

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

super-csv-0.9.6.tar.gz (26.1 kB view hashes)

Uploaded Source

Built Distribution

super_csv-0.9.6-py2.py3-none-any.whl (29.1 kB view hashes)

Uploaded Python 2 Python 3

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