Metadata-Version: 1.1
Name: pycanvasdata
Version: 0.0.2
Summary: Python utilities for working with Canvas Data
Home-page: UNKNOWN
Author: Kajigga dev
Author-email: kajigga+dev@gmail.com
License: MIT
Description: CanvasData Utilities
        =======================
        
        .. image:: https://travis-ci.org/kajigga/py_canvas_data.svg
        
        Full documentation 
        
        This python module is designed to make it easy to access Canvas Data files.
        
        Currently, this module makes it possible to:
        
          - Convert downloaded Canvas Data files to CSV files with headers
          - export SQL table creation statements 
          - list files for a table
          - download all files or files for a specific table
          - view the Canvas Data schema (fields, field types, etc)
          - connect to a database (uses sqlalchemy) to create tables, import data, run SQL queries
        
        
        ----
        
        Module Usage
        ------------
        
        This module can be used programatically in other scripts and software. An
        example of creating a canvas_data object is found below.::
          
          from canvas_data_utils.canvas_data_auth import CanvasData
        
          canvas_data_object = CanvasData(
              API_KEY=YOUR_API_KEY ,
              API_SECRET=YOUR_API_SECRET, 
              base_folder = YOUR_BASE_DIR,
              data_folder = YOUR_DATA_DIR)
        
          
        Once you have that object created, you can...
        
        generate mysql table creation statements
        
        ::
        
          mysql_table_creation_statement = canvas_data_object.table_creation_statement('mysql')
        
        generate sqlite table creation statements
        
        ::
        
          sqlite_table_creation_statement = canvas_data_object.table_creation_statement('sqlite')
        
        generate postgres table creation statements
        
        ::
        
          postgres_table_creation_statement = canvas_data_object.table_creation_statement('postgres')
        
        create tables in a database given by a connection string
        
        ::
        
          canvas_data_object.create_tables('sqlite:///{}'.format(db_filename))
        
        fetch the current schema (as json)
        
        ::
        
          schema = canvas_data_object.fetch_schema()
        
        get a list of columns in a table
        
        ::
        
          user_dim_columns = canvas_data_object.get_schema_columns( 'user_dim')
        
        convert an text file download from TSV (Tab Separated Values) to CSV
        
        ::
        
          canvas_data_object.convert_tsv_to_csv(tsv_filepath)
        
        list all the tables in the schema
        
        ::
        
          table_list = canvas_data_object.table_list()
        
        download and convert all files to CSV
        
        ::
        
          canvas_data_object.convert_all_to_csv()
        
        list all downloadable files for a table
        
        ::
        
          file_list = canvas_data_object.list_all_files('user_dim')
        
        ----
        
        Config File
        ------------
        You need to create a config file somewhere. This config file is a typical .INI
        file. It should look something like the following example.
        
        ::
        
          [security]
          API_SECRET = replace_with_api_secret_from_canvas_data
          API_KEY = replace_with_api_key_from_canvas_data
        
          [folders]
          base_folder = /path/to/base/folder/for/downloads/
          data_folder = %(base_folder)s/test2
        
          [database]
          connection_string = sqlite:///%(base_folder)s/sample.db
        
        
        Note: The connection_string configuration follows the connection pattern needed
        by SQLAlchemy at http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html.
        
        This library supports any database type than SQLAlchemy does.
        
        ----
        
        Command-line Tool
        -----------------
        
        This library includes a command line utility called `canvasdata`.
        
        Usage
        -----
        
        ::
        
          canvasdata [-h] [--config CONFIG] [-t TABLE] [--offline OFFLINE]
                          {convert_to_csv,import,create_tables,reset,sql_create_statement,list_files,download,sample_queries,schema}
        
          optional arguments:
            -h, --help            show this help message and exit
            --config CONFIG       path to the configuration file
            -t TABLE              specify a specific table
            --offline OFFLINE     run in offline mode
        
        
        
Keywords: database canvasdata development
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
