csvDelimiterMainJsonOutput

# authors: Julian Loeffler, Matthias Urban

 
Modules
       
argparse
html
json
logging
operator
os
re
shutil
sys
time

 
Classes
       
builtins.object
CsvDelimiter
Error
bcolors
enum.Enum(builtins.object)
Errors

 
class CsvDelimiter(builtins.object)
    Main Class for the Delimiter search
 
  Methods defined here:
__init__(self)
creates a new CsvDelimiter instance
:returns: returns nothing
analyseHeaderline(self)
function to analyse the headerline, computes occurences of
each delimiter in the header line and only keeps them if they
occur at least once.
:returns: returns nothing
analyseLines(self)
Function which analyses inconsistent lines.
:returns: returns list of errors
analyseWithinFieldCandidates(self)
Function to analyse the possible within-field-separators
cleanUp(self)
function that deletes old files if the exist
such as self.dimensionsFile and self.errorLogJson
dimensionsToFile(self)
dimensions are the number of records and number of fields.
function writes the dimensions of self.filename to self.dimensionsFile
the produced file is in JSON format
doubleQuoteError(self, line, delimiter)
checks if string would be legit if you don't count delimiter
which is within double quotes, if so there is an double quote error
>>> cd = CsvDelimiter()
>>> line = ('"Hi,hoho",ho,ho,ho',"1")
>>> delimiter = ","
>>> cd.delimiterOccurencesHeader[delimiter] = 3
>>> cd.doubleQuoteError(line,delimiter)
True
>>>
:param line: line to check
:param delimiter: delimter to check for in quotes
:returns: returns True if error
errorsToFile(self, errors)
converts errors to json and then to file
:param errors: list of errors
:returns: returns nothing
findFieldSeparator(self)
function which determines the field-separator.
reads in the [filename].delimiterOcc
creates dictionaries which contain the consistency score of
each delimiter. Also saves Linenumbers of inconsistent lines,
in which the field-separator occurs less than in headerline
:returns: returns nothing
findInfoSeparator(self)
function to find the info-separator, basicly removes a found field-separator
from the candidates and takes the one which occurs most.
:returns: returns nothing
findWithinFieldSeparator(self)
function to search for a within-field-separator, it analyses the withinFieldCandidates
removes the fieldSeparator from the withinFieldCandidates and takes the
delimiter candidate which occurs the most.
:returns: returns nothing
readLines(self, filename)
reads in the files lines, counts how often the delimiters occur
in each line of the file, creates a dict of the form:
{del1:occ, del2:occ, ..} and saves it to the dict "delimiterOccurences"
in addition it writes the lines to a new file with replaced utf8 errors
:param filename: filename of the .csv file
:returns: returns nothing
resultsToJson(self)
converts results to json
singleQuoteError(self, line)
simply checks if there is an odd number of "
>>> cd = CsvDelimiter()
>>> line = ('"a,b,c,d,e',"1")
>>> cd.singleQuoteError(line)
True
>>>
:param line: line to check
:returns: returns True if error

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class Error(builtins.object)
    object to represent an Error
 
  Methods defined here:
__init__(self, linenumber, line, errorMsg, errorType)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class Errors(enum.Enum)
    simple enum for errors
 
 
Method resolution order:
Errors
enum.Enum
builtins.object

Data and other attributes defined here:
decimalSign = <Errors.decimalSign: 4>
doubleQuote = <Errors.doubleQuote: 3>
lessOften = <Errors.lessOften: 6>
noDelimiter = <Errors.noDelimiter: 1>
singleQuote = <Errors.singleQuote: 2>
tooOften = <Errors.tooOften: 5>
unknown = <Errors.unknown: 0>

Data descriptors inherited from enum.Enum:
name
The name of the Enum member.
value
The value of the Enum member.

Data descriptors inherited from enum.EnumMeta:
__members__
Returns a mapping of member name->value.
 
This mapping lists all enum members, including aliases. Note that this
is a read-only view of the internal mapping.

 
class bcolors(builtins.object)
     Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes defined here:
ENDC = '\x1b[0m'
FAIL = '\x1b[91m'
OKBLUE = '\x1b[94m'

 
Functions
       
main()
main function, initalizes the cmd line parser, logger and creates a CsvDelimiter object,
then parses the file and returns the result.

 
Data
        logger = <logging.Logger object>