{ "info": { "author": "Henrique Bastos", "author_email": "henrique@bastos.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Financial and Insurance Industry", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries", "Topic :: Text Processing" ], "description": "======\nfixofx\n======\n\nCanonicalize various financial data file formats to OFX 2 (a.k.a XML)\n---------------------------------------------------------------------\n\n*Fixofx* is a library and an utility to canonicalizes various financial data file\nformats to OFX 2, which is an XML format and hence a lot easier for other code\nto deal with. It recognizes OFX 1.x, OFX 2.x, QFX, QIF, and OFC.\n\nPipe a data file to ``ofxfix.py``, or specify an input file with the ``-f`` flag, and\nif the file is successfully parsed, an OFX 2 file with equivalent data will\nbe output.\n\nVarious parts of *Fixofx* go through contortions to try to interpret ambiguous\nor malformed data, both of which are very common when importing bank data\nfiles. QIF, in particular, is an extremely irregular file format, and *Fixofx*\nmakes best efforts but will not cover all cases. Also, some international\nformats are recognized and interpreted, such as British versus US date\nformats, but more work could be done on this.\n\nSometimes a data file will not contain information that is important for OFX --\nfor instance, neither OFC nor QIF include the OFX \"FID\" and \"ORG\" fields. Other times,\nthe data format will include this data, but inconsistently, such as QIF's account\ntype, which can be ambiguous or absent. In these cases you can ask the user to \nprovide hints to *Fixofx*, and convey those hints via command-line options (see\n`Command line operation`_, below).\n\nThe *Fixofx* project also includes ``ofxfake.py``, a utility script to generate fake\nOFX files for testing purposes.\n\nInstallation\n------------\n\n::\n\n pip install fixofx\n\nThis package only works on Python 3+.\n\nTests\n-----\n\nA partial test suite is included. Run it as follows::\n\n git clone https://github.com/henriquebastos/fixofx.git\n pip install -r requirements-dev.txt\n py.test\n\nCommand line operation\n----------------------\n\nThe simplest invocation of the script is::\n\n ./ofxfix.py -f \n \nYou can also pipe a data file to standard input -- that is, this invocation\nis equivalent to the above::\n\n ./ofxfix.py < \n\nThere are several command line options, as follows::\n\n -h, --help show this help message and exit\n -d, --debug spit out gobs of debugging output during parse\n -v, --verbose be more talkative, social, outgoing\n -t, --type print input file type and exit\n -f FILENAME, --file=FILENAME source file to convert (writes to STDOUT)\n --fid=FID (OFC/QIF only) FID to use in output\n --org=ORG (OFC/QIF only) ORG to use in output\n --curdef=CURDEF (OFC/QIF only) Currency identifier to use in output\n --lang=LANG (OFC/QIF only) Language identifier to use in output\n --bankid=BANKID (QIF only) Routing number to use in output\n --accttype=ACCTTYPE (QIF only) Account type to use in output\n --acctid=ACCTID (QIF only) Account number to use in output\n --balance=BALANCE (QIF only) Account balance to use in output\n --dayfirst (QIF only) Parse dates day first (UK format)\n\nDebugging\n---------\n\nIf you find a data file fixofx can't parse, try running with the ``-v`` flag,\nand if that doesn't help (which it probably won't), try the ``-d`` flag, too.\n\nMost of the time a failed parse is due to a malformed data file. QIF,\nespecially, is damn near undocumented, and different banks just seem to make\nstuff up about how they think it should work. And they don't talk to each\nother about their crazy QIF theories, either. So that's bad.\n\nIf you think the script is basically working (e.g., tests pass) but a parse is\nfailing, the best thing to do is to just look at the data file and see how it\nis different from other examples you've seen. Post a cleaned-up (sensitive\ndata removed) snippet as a gist if you want someone else to help. Usually a\ndifference will jump out at you after a while if you're familiar with the\nformat.\n\nofxfake.py\n----------\n\nThe ``ofxfake.py`` script generates real-ish-seeming OFX for testing and demo\npurposes. You can generate a few fake OFX files using the script, and upload\nthem to Wesabe to try it out or demonstrate it without showing your real\naccount data to anyone.\n\nThe script uses some real demographic data to make the fake transactions it\nlists look real, but otherwise it isn't at all sophisticated. It will randomly\nchoose to generate a checking or credit card statement and has no options.\n\nContributing\n------------\n\nContributions to *Fixofx* are welcome. Please add tests for your contribution\nand make sure all tests pass before sending a pull request. Here are some\nideas for things to do:\n\n* fakeofx could use some command line options and a little more control over\n the output. **(EASY)**\n* The OFX parser class has some ugly regular expression hacks added to deal\n with a variety of malformed OFX inputs. Each new regex makes things slower\n and makes the baby jwz cry. Find a better path. **(EASY)**\n* Fill in missing tests, especially in QIF conversion. **(MEDIUM)**\n* *Fixofx* currently converts QIF to OFX/1, and then OFX/1 to OFX/2, which is\n totally crazy-pants and makes everything ungodly slow. Go straight from QIF\n to OFX/2 instead. **(MEDIUM)**\n* Some people would be happy if *Fixofx* accepted a bunch of input formats (as\n it does) and had options for outputing any of those formats, too (right now\n OFX/2 output is the only option). Basically, convert everything to an\n internal representation and then output whatever kind of document the user\n wants. **(MEDIUM)**\n* The date format parsing could be a lot more intelligent, using windows of\n transactions to guess the date format instead of requiring at least one\n unambiguous date. **(MEDIUM)**\n* There is the start of a CSV converter in ``ofxtools``. This has to be one of\n the most-requested Wesabe features evar. Have at it. **(HARD)**\n\nThanks\n------\n\nThis project was created by devs at Wasabe Inc.\n\nPatches were contributed by `James Nylen `_ and `Jeremy Milum `_.\n\nMany, many, many fixes were contributed by `Vanderson Mota `_.\n\nPackaging and conversion to Python 3 was made by `Henrique Bastos `_.\n\nLicense\n-------\n\nApache License 2.0", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/henriquebastos/fixofx", "keywords": "ofx,ofc,qif,converter,xml", "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "fixofx", "package_url": "https://pypi.org/project/fixofx/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fixofx/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/henriquebastos/fixofx" }, "release_url": "https://pypi.org/project/fixofx/3.0/", "requires_dist": null, "requires_python": null, "summary": "Canonicalize various financial data file formats to OFX 2 (a.k.a XML)", "version": "3.0" }, "last_serial": 1145748, "releases": { "3.0": [ { "comment_text": "", "digests": { "md5": "38abf167a145943e35d5a57ca836569c", "sha256": "4cd33e3fb8093a660ae8bb8a3c3e05621c0febe8288fbfb8f57614cd93d1603f" }, "downloads": -1, "filename": "fixofx-3.0.tar.gz", "has_sig": false, "md5_digest": "38abf167a145943e35d5a57ca836569c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40757, "upload_time": "2014-07-03T06:12:07", "url": "https://files.pythonhosted.org/packages/67/7a/27fe247c238ec779d2e949f1a3c62a70103948cb35d48cdf67c750132749/fixofx-3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "38abf167a145943e35d5a57ca836569c", "sha256": "4cd33e3fb8093a660ae8bb8a3c3e05621c0febe8288fbfb8f57614cd93d1603f" }, "downloads": -1, "filename": "fixofx-3.0.tar.gz", "has_sig": false, "md5_digest": "38abf167a145943e35d5a57ca836569c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40757, "upload_time": "2014-07-03T06:12:07", "url": "https://files.pythonhosted.org/packages/67/7a/27fe247c238ec779d2e949f1a3c62a70103948cb35d48cdf67c750132749/fixofx-3.0.tar.gz" } ] }