{
"info": {
"author": "Mateusz Bysiek",
"author_email": "mateusz.bysiek@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Education",
"Topic :: Scientific/Engineering",
"Topic :: Utilities"
],
"description": ".. role:: bash(code)\n :language: bash\n\n.. role:: fortran(code)\n :language: fortran\n\n.. role:: java(code)\n :language: java\n\n.. role:: python(code)\n :language: python\n\n.. role:: xml(code)\n :language: xml\n\n\n============================================\nXML output generator for Open Fortran Parser\n============================================\n\nExtension of Java-based Open Fortran Parser and a Python wrapper enabling Fortran parsing from Python.\n\n.. image:: https://travis-ci.org/mbdevpl/open-fortran-parser-xml.svg?branch=master\n :target: https://travis-ci.org/mbdevpl/open-fortran-parser-xml\n :alt: build status from Travis CI\n\n.. image:: https://ci.appveyor.com/api/projects/status/github/mbdevpl/open-fortran-parser-xml?branch=master&svg=true\n :target: https://ci.appveyor.com/project/mbdevpl/open-fortran-parser-xml\n :alt: build status from AppVeyor\n\n.. image:: https://api.codacy.com/project/badge/Grade/1e5602a9efed41998eca0437d84cc1db\n :target: https://www.codacy.com/app/mbdevpl/open-fortran-parser-xml\n :alt: grade from Codacy\n\n.. image:: https://codecov.io/gh/mbdevpl/open-fortran-parser-xml/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/mbdevpl/open-fortran-parser-xml\n :alt: test coverage from Codecov\n\n.. image:: https://img.shields.io/github/license/mbdevpl/open-fortran-parser.svg\n :target: https://github.com/mbdevpl/open-fortran-parser-xml/blob/master/NOTICE\n :alt: license\n\nImplementation has 2 parts: the XML generator written in Java, and Python wrapper for the generator.\n\nThe implementation is tested on Linux, OS X and Windows.\n\nIn this file, first the AST specification is described, then the Java implementation,\nand then the Python wrapper.\n\n.. contents::\n :backlinks: none\n\n\nAST specification\n=================\n\nFor any Fortran file, the resulting XML file has the following structure:\n\n.. code:: xml\n\n \n \n \n \n \n \n\nRoot node is :xml:``, it has one subnode :xml:``.\n\nInside the :xml:``, there might be one or many of the following nodes:\n\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* ...\n\nAdditionally, every XML node that was built using tokens from the source code\n(which means almost any XML node) has its source code location described in the following way:\n\n.. code:: xml\n\n \n\nFor simplicity, the above XML file boilerplate as well as locations are stripped\nfrom the examples that follow.\n\nFor each presented construct, Fortran code snippet and corresponding XML AST is given.\n\n\nComments and directives\n-----------------------\n\nComment:\n\n.. code:: fortran\n\n ! my comment\n !$omp parallel do\n\n.. code:: xml\n\n \n \n\nDirective:\n\n.. code:: fortran\n\n #define NDIMS 3\n\n.. code:: xml\n\n \n\n\nNodes :xml:`` and :xml:``\nexist to carry comments and preprocessor directives, respectively.\nThese nodes might be in principle inserted before, after or within any of other nodes,\nhowever, in practice they are either surrounding the top-level nodes (e.g. program or subroutine)\nor are placed in-between non-compound declarations and/or statements within them.\n\nNote: compiler directives are comments in Fortran.\n\n\nProgram\n-------\n\n.. code:: fortran\n\n program empty\n ...\n end program empty\n\n.. code:: xml\n\n \n \n ...\n \n \n\nIn the body, `Declarations`_ followed by any number of statements can be found.\n\nAnd each of the statements listed after the declarations,\ncan be one of `Simple statements`_ or `Compound statements`_.\n\n\nDeclarations\n------------\n\nA special node :xml:`` wraps all declarations:\n\n.. code:: xml\n\n \n ...\n \n\nIt provides counts for each of the declaration type and contains a collection of declarations,\nwhich can any of the following:\n\n* :xml:``\n* :xml:``\n* ...\n\nThe :xml:`` node is special in a sense that it has type attribute that specifies\nwhat kind of declaration it is.\n\n\nImplicit declaration\n~~~~~~~~~~~~~~~~~~~~\n\n.. code:: fortran\n\n implicit none\n implicit real (A-H,O-Z)\n\n.. code:: xml\n\n \n \n \n \n \n \n \n \n\n\nVariable declaration\n~~~~~~~~~~~~~~~~~~~~\n\n.. code:: fortran\n\n integer i, j\n\n.. code:: xml\n\n \n \n \n \n \n \n \n\n\nExternal declaration\n~~~~~~~~~~~~~~~~~~~~\n\n.. code:: fortran\n\n external omp_get_num_procs\n\n\nSave declaration\n~~~~~~~~~~~~~~~~\n\n.. code:: fortran\n\n save n\n\n\nUse\n~~~\n\n.. code:: fortran\n\n use mpi\n use my_interface, only: subroutine1, subroutine2\n use, non_intrinsic :: my_module\n use, intrinsic :: iso_c_binding, only: c_int, c_float\n\n.. code:: xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\nCompound statements\n-------------------\n\nCompound statements, e.g.:\n\n* :xml:``\n* :xml:``\n* :xml:``\n* ...\n\neach have :xml:`` and :xml:``.\n\n\nIf\n~~~\n\nIn the header of :xml:``, an expression is present.\n\nSee `Expressions`_ for a definition.\n\n\nLoop\n~~~~\n\nIn the header of the :xml:``, at least one :xml:`` is present.\nIt has :xml:``, :xml:`` and :xml:``.\n\n\nSelect\n~~~~~~\n\nIn the body of :xml:`` there multiple :xml:`` nodes.\nThese are also compound (i.e. each of them has :xml:`` and :xml:``),\nhowever they exist only within the body of select statement.\n\n\nSimple statements\n-----------------\n\n.. code:: xml\n\n \n ...\n \n\nAll simple statements are using :xml:`` node, which wraps around nodes like:\n\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* :xml:``\n* ...\n\n\nAssignment\n~~~~~~~~~~\n\n.. code:: fortran\n\n x = 1\n\n.. code:: xml\n\n \n \n \n \n \n \n \n \n\n\nCall\n~~~~\n\n.. code:: fortran\n\n call configure\n call initialize()\n call calculate(1, 2)\n call something(thing=my_value)\n\n.. code:: xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\nExpressions\n-----------\n\nExpression might be a single node like:\n\n* :xml:``\n* :xml:``\n* ...\n\nMore complex expressions are built from the :xml:`` nodes, each of which contains\na collection of :xml:`` and :xml:`` nodes. Each operand contains an expression.\n\n\nUnary operation\n~~~~~~~~~~~~~~~\n\n.. code:: fortran\n\n .not. flag\n\n.. code:: xml\n\n \n \n \n \n \n \n\n\nMultiary operation\n~~~~~~~~~~~~~~~~~~\n\n.. code:: fortran\n\n 'Hello' // ' world'\n 5 + x\n\n.. code:: xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\nSubroutine\n----------\n\nMany complex nodes contain :xml:`` and :xml:``.\n\nThe contents of the header depend on the type of the node. For example, in case of subroutines,\nit contains list of parameters.\n\n\nFunction\n--------\n\n.. code:: fortran\n\n function foo\n ...\n end function foo\n\n.. code:: xml\n\n \n \n \n ...\n \n \n\n\nModule\n------\n\n.. code:: fortran\n\n module abc\n integer i\n ...\n contains\n subroutine sub()\n ...\n end subroutine sub\n ...\n end module abc\n\n.. code:: xml\n\n \n \n \n \n \n \n \n \n \n \n ...\n \n \n \n \n \n ...\n \n \n ...\n \n \n\n\nWork in progress\n----------------\n\nRemaining details of AST are not decided yet. For the time being, to see implementation details,\nplease take a look into `src/fortran/ofp/XMLPrinter.java `_.\n\n\nUnhandled corner cases\n----------------------\n\nin certain corner cases, the parse tree might deviate from the above description.\n\nThis might be due to two main reasons:\n\n1) Some feature is not yet implemented in this XML output generator\n2) The events provided by OFP are not sufficient to generate a correct tree.\n\nIn case 1, all contributions to this project are very welcome. The implementation of any one\nof the missing features might not be very troublesome. The main reason why many of those features\nare not implemented yet is because the Fortran codes the current contributors work with\ndo not use them.\n\nIn case 2, there is a need to dynamically reorder/modify/delete nodes, or otherwise manipulate\nexisting parse tree while adding new nodes. Contributions are also very welcome,\nbut implementation might be much more challenging in this case.\n\n\nJava XML generator for OFP\n==========================\n\n.. image:: https://img.shields.io/github/release/mbdevpl/open-fortran-parser-xml.svg\n :target: https://github.com/mbdevpl/open-fortran-parser-xml/releases\n :alt: latest GitHub release\n\nThis is an extension of Open Fortran Parser (OFP), which outputs abstract syntaxt tree (AST)\nof parsed Fortran file in XML format - to a file or to :java:`System.out`.\n\n\ndependencies\n------------\n\n* Java 1.7 or later\n\n* Open Fortran Parser 0.8.5-1\n\n https://github.com/mbdevpl/open-fortran-parser/releases\n\n This is a patched version of OFP. The list of changes is available at the above link.\n\n* ANTRL 3.5.2 (dependency of Open Fortran Parser)\n\n http://www.antlr3.org/download/\n\n* Apache Commons CLI 1.4 or later\n\n https://commons.apache.org/proper/commons-cli/download_cli.cgi\n\n\nhow to build\n------------\n\nGet dependencies, either manually, or using the provided script:\n\n.. code:: bash\n\n pip3 install -U -r requirements.txt\n python3 -m open_fortran_parser --deps\n export CLASSPATH=\"${CLASSPATH}:$(pwd)/lib/*\"\n\nBuild:\n\n.. code:: bash\n\n ant\n export CLASSPATH=\"${CLASSPATH}:$(pwd)/dist/*\"\n\nThis will create a `.jar` file in `dist` directory, and add it to the Java classpath.\n\nIf you use a different python executable to install requirements, please provide it to ant too:\n\n.. code:: bash\n\n ant -Dpython=/custom/python\n\nBecause the build script by default relies on \"python3\" executable.\n\n\nhow to run\n----------\n\n.. code:: bash\n\n java fortran.ofp.FrontEnd --class fortran.ofp.XMLPrinter \\\n --output output.xml --verbosity 0~100 input.f\n\nwhere:\n\n* The :bash:`--verbosity` flag controls verbosity of the parse tree. Defaluts to :bash:`100`\n when omitted.\n\n * Maximum, :bash:`100`, means that all details picked up by Open Fortran Parser\n will be preserved.\n\n * Minimum, :bash:`0`, means that tree will contain only what is needed to reconstruct\n the program without changing it's meaning.\n\n* The :bash:`--output` flag controls where the XML should be written. Defaults to standard output\n when omitted.\n\nand remaining command-line options are exactly as defined in OFP 0.8.5.\n\nTo parse :bash:`some_fortran_file.f` and save XML output in :bash:`tree.xml` with minimum verbosity:\n\n.. code:: bash\n\n java fortran.ofp.FrontEnd --class fortran.ofp.XMLPrinter \\\n --output tree.xml --verbosity 0 some_fortran_file.f\n\nAnd to dump XML with maximum verbosity to console:\n\n.. code:: bash\n\n java fortran.ofp.FrontEnd --class fortran.ofp.XMLPrinter \\\n --verbosity 100 some_fortran_file.f\n\n\nPython wrapper for the generator\n================================\n\n.. image:: https://img.shields.io/pypi/v/open-fortran-parser.svg\n :target: https://pypi.python.org/pypi/open-fortran-parser\n :alt: package version from PyPI\n\nUsing the wrapper should not require any special knowledge about the generator itself, other than\nknowing the abstract syntax tree (AST) specification.\n\n\ndependencies\n------------\n\nJava XML generator for OFP and all of its dependencies.\n\nPython version 3.5 or later.\n\nPython libraries as specified in `requirements.txt `_.\n\nBuilding and running tests additionally requires packages listed in `test_requirements.txt `_.\n\n\nhow to build\n------------\n\n.. code:: bash\n\n pip3 install -U -r test_requirements.txt\n python3 setup.py sdist --formats=gztar,zip\n python3 setup.py bdist_wheel\n\nhow to install\n--------------\n\nYou can simply install from PyPI:\n\n.. code:: bash\n\n pip3 install open-fortran-parser\n\nOr using any of below commands, when installing from source:\n\n.. code:: bash\n\n pip3 install .\n pip3 install dist/.whl\n pip3 install dist/.tar.gz\n pip3 install dist/.zip\n\n\nhow to run\n----------\n\nThe wrapper can be used as a script, or as a library.\n\nWhen running any installed version, even if installed from source, dependencies are automatically\ninstalled together with the wrapper.\n\nBefore running from source (without installation), however, please follow \"how to build\" section\nfor Java implementation above.\nYou can make sure that dependencies are configured correctly by running:\n\n.. code:: bash\n\n python3 -m open_fortran_parser --check-deps\n\nIf the depenencies changed since you first ran the wrapper from the source tree, you can cleanup\noutdated dependencies by executing:\n\n.. code:: bash\n\n python3 -m open_fortran_parser --cleanup-deps\n\n\nas script\n~~~~~~~~~\n\n.. code::\n\n $ python3 -m open_fortran_parser -h\n usage: open_fortran_parser [-h] [--version] [-v VERBOSITY]\n [--check-dependencies]\n [input] [output]\n\n Python wrapper around XML generator for Open Fortran Parser\n\n positional arguments:\n input path to Fortran source code file (default: None)\n output writable path for where to store resulting XML,\n defaults to stdout if no path provided (default: None)\n\n optional arguments:\n -h, --help show this help message and exit\n --version show program's version number and exit\n -v VERBOSITY, --verbosity VERBOSITY\n level of verbosity, from 0 to 100 (default: 100)\n --check-dependencies, --check-deps\n check if all required dependencies are present and\n exit (default: False)\n\n Copyright 2017-2019 by the contributors, Apache License 2.0,\n https://github.com/mbdevpl/open-fortran-parser-xml\n\n\nas library\n~~~~~~~~~~\n\n.. code:: python\n\n from open_fortran_parser import parse\n\n xml = parse('my_legacy_code.f', verbosity=0)\n\nMore examples available in `examples.ipynb `_.\n\n\ntesting\n-------\n\nRun basic tests:\n\n.. code:: bash\n\n python3 -m unittest -v\n TEST_LONG=1 python3 -m unittest -v # this might take a long time...\n\n\ncode coverage\n~~~~~~~~~~~~~\n\nGetting code coverage results for Java requires JaCoCo agent, and JaCoCo CLI,\nand both are dowonloaded automatically along with other development dependencies.\n\nCurrently, test setup relies on JaCoCo 0.8.3:\n\n* JaCoCo agent 0.8.3 (runtime)\n* JaCoCo CLI 0.8.3 (nodeps)\n\nRun all test and gather code coverage:\n\n.. code:: bash\n\n TEST_LONG=1 TEST_COVERAGE=1 python3 -m coverage run --branch --source . -m unittest -v\n\nThis will take a long while.\n\nThen, generate results for Python code:\n\n.. code:: bash\n\n python3 -m coverage report --show-missing\n python3 -m coverage html\n\nFinally, generate results for Java code:\n\n.. code:: bash\n\n java -jar \"lib/org.jacoco.cli-0.8.3-nodeps.jar\" report \"jacoco.exec\" --classfiles \"bin/\" --sourcefiles \"src/\" --html jacoco\n\n\n",
"description_content_type": "text/x-rst; charset=UTF-8",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/mbdevpl/open-fortran-parser-xml",
"keywords": "abstract syntax tree,ast,parser,xml",
"license": "Apache License 2.0",
"maintainer": "Mateusz Bysiek",
"maintainer_email": "mateusz.bysiek@gmail.com",
"name": "open-fortran-parser",
"package_url": "https://pypi.org/project/open-fortran-parser/",
"platform": "",
"project_url": "https://pypi.org/project/open-fortran-parser/",
"project_urls": {
"Homepage": "https://github.com/mbdevpl/open-fortran-parser-xml"
},
"release_url": "https://pypi.org/project/open-fortran-parser/0.6.1/",
"requires_dist": [
"version-query",
"wget"
],
"requires_python": ">=3.5",
"summary": "Python wrapper for XML output generator for Open Fortran Parser",
"version": "0.6.1"
},
"last_serial": 5792267,
"releases": {
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "b5a4d85692149d6560fcc344388e3535",
"sha256": "46c3df6317793aa8ff70fe9d44352c3d354636e25dc4320b8bd4b419e20b0995"
},
"downloads": -1,
"filename": "open_fortran_parser-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b5a4d85692149d6560fcc344388e3535",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 11391,
"upload_time": "2017-06-06T11:02:19",
"url": "https://files.pythonhosted.org/packages/61/7d/ae96882018032e8649c2ca2ddfe6e76828aa99956a3083df0aa89d6bd6eb/open_fortran_parser-0.1.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2ce2932bbe4fc3dbd9d6bf1c662aa367",
"sha256": "9db840f672d440d7809dcaf6656ac05444a580901602a403c6e3d35b241af1b6"
},
"downloads": -1,
"filename": "open-fortran-parser-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "2ce2932bbe4fc3dbd9d6bf1c662aa367",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 16882,
"upload_time": "2017-06-06T11:02:52",
"url": "https://files.pythonhosted.org/packages/e9/5c/7d93754a23709965c5933431408145d74f7fe74ab7dcbbb6c8591b06c1d4/open-fortran-parser-0.1.1.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "e238259dccdc86848390318b74df2343",
"sha256": "4188c28390e851a48364fdeaf4139f4a006b6f08d9cbde0c562fb1ef8fc7d935"
},
"downloads": -1,
"filename": "open_fortran_parser-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e238259dccdc86848390318b74df2343",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 12776,
"upload_time": "2017-09-06T08:15:57",
"url": "https://files.pythonhosted.org/packages/36/12/9b19a58cebd5d994c08ee75f1efe46ed25f488f8bacc1348ec5b05cc27e7/open_fortran_parser-0.2.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6a9b785a5ad42d344f4008d8f39559af",
"sha256": "fc7b11956a69b765acaeb23e51686c93252cd1f5a5e53514acb812ce654843c0"
},
"downloads": -1,
"filename": "open-fortran-parser-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "6a9b785a5ad42d344f4008d8f39559af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 24120,
"upload_time": "2017-09-06T08:16:16",
"url": "https://files.pythonhosted.org/packages/7c/01/f6e7215b22aa5223087bdc7bc4f51573f17855a1d5bc3a327bbc050ecbf3/open-fortran-parser-0.2.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "dddb461bb6d5df5935ba1fd516227f58",
"sha256": "cf0d26e77cd9188dc0899dfe36d0c3b61bfb3964998b7563783eae8757caf7a8"
},
"downloads": -1,
"filename": "open_fortran_parser-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dddb461bb6d5df5935ba1fd516227f58",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 3285098,
"upload_time": "2017-10-13T00:10:21",
"url": "https://files.pythonhosted.org/packages/80/73/1ff8c36be3a4a5680aca929a65c1908fdbb52430d70fb7f62bcc2ab5f2e6/open_fortran_parser-0.3.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8f4c49a64480073b28d20e474e36aadd",
"sha256": "2dc3177e5419dfe11cd79ad62bc01c48c66278c015b062f24ca155ac93f1a7a8"
},
"downloads": -1,
"filename": "open-fortran-parser-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "8f4c49a64480073b28d20e474e36aadd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 3469832,
"upload_time": "2017-10-13T00:10:40",
"url": "https://files.pythonhosted.org/packages/d3/28/e63d8f46bd5a8f8e2a5c32f764bdf5bcdd28b33c64ebee7afc73f53ba3bb/open-fortran-parser-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "216783b88259f9daf68fea4849d0e025",
"sha256": "7b0d069d47579fedc987962bc399786f196a13ab5b32d2b1bcdbc82e318c47d8"
},
"downloads": -1,
"filename": "open_fortran_parser-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "216783b88259f9daf68fea4849d0e025",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 3338165,
"upload_time": "2017-12-10T08:25:16",
"url": "https://files.pythonhosted.org/packages/f0/44/36e6469b76efeed7a3b402c3a661111837bfe1393d79e0020e98adba0f9a/open_fortran_parser-0.4.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e9665952f770b304043f2dd0d457ddc8",
"sha256": "1dd32cfc06e78de105929cd51123aa71665cbad87e14d147700cb30c63b5aa2b"
},
"downloads": -1,
"filename": "open-fortran-parser-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "e9665952f770b304043f2dd0d457ddc8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 3351639,
"upload_time": "2017-12-10T08:25:35",
"url": "https://files.pythonhosted.org/packages/2d/96/4267114b377bb262e2ce3dc52520b61b42f8db94ee0603986fb0fa45ef46/open-fortran-parser-0.4.0.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "ac7bda394e1b914cc1135a1e65fc03de",
"sha256": "d2df551312640f5e439b236ccaeccfa263e3c2de66fe8938b5667dac3a569292"
},
"downloads": -1,
"filename": "open_fortran_parser-0.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ac7bda394e1b914cc1135a1e65fc03de",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3338552,
"upload_time": "2017-12-18T14:59:39",
"url": "https://files.pythonhosted.org/packages/2f/19/b1af34f05171a4805c417641a29b90602444c621566f24d60f8e155c7392/open_fortran_parser-0.4.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "639ce5464a4e80f49b8ef16e5d8393df",
"sha256": "5ab0ae5c66e52bbae659bfb2ccff9cdcb9d04ccb2e3b3e9d9f1e5ff7f8b0a5c7"
},
"downloads": -1,
"filename": "open-fortran-parser-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "639ce5464a4e80f49b8ef16e5d8393df",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3350667,
"upload_time": "2017-12-18T14:59:58",
"url": "https://files.pythonhosted.org/packages/7a/f2/796575f2274a7ec5f35c9f30dc2df4ac6e2cee488330ce31455818da9d54/open-fortran-parser-0.4.1.tar.gz"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "2467f46c6932d6cf4092f645db3394c3",
"sha256": "535ccf9f3f4aa07675483dc6a40db1f2f813e749c367c3466df7fadfc593b987"
},
"downloads": -1,
"filename": "open_fortran_parser-0.5.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2467f46c6932d6cf4092f645db3394c3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3342171,
"upload_time": "2018-02-09T07:33:34",
"url": "https://files.pythonhosted.org/packages/83/9b/1fc02cbc1fd7f417988099e26ca746e0f0bf1eaa9075628e3b061131ab75/open_fortran_parser-0.5.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "83587f977538338a17c75cfe59a32ee9",
"sha256": "e3e29e5282f883086f8c0fa5038d85cafa0ae5440479f8c32278ed3709dfa012"
},
"downloads": -1,
"filename": "open-fortran-parser-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "83587f977538338a17c75cfe59a32ee9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3355185,
"upload_time": "2018-02-09T07:33:43",
"url": "https://files.pythonhosted.org/packages/f6/54/78d940740b9a8170aa50692bececf49f2b8ed79d6d486e5c7e42129c376c/open-fortran-parser-0.5.2.tar.gz"
}
],
"0.5.3": [
{
"comment_text": "",
"digests": {
"md5": "9ed5e9aec188df9e8823f22a0fae6ebc",
"sha256": "fea5ead821de94cd7235a7078f4322de772459cd83528a8a7bdb3da978eccf6e"
},
"downloads": -1,
"filename": "open_fortran_parser-0.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9ed5e9aec188df9e8823f22a0fae6ebc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3338822,
"upload_time": "2018-08-15T20:45:30",
"url": "https://files.pythonhosted.org/packages/bc/7d/d61616839391a79e6cb929ae7fe1ada4bccbcc3f2747abb513d9154fc31b/open_fortran_parser-0.5.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c40c6864dafb6270c94d2013ce3c5533",
"sha256": "04acd0161ee00675c0b889ac1168aff1f94cb8e8a42a79a04133adce25a5e805"
},
"downloads": -1,
"filename": "open-fortran-parser-0.5.3.tar.gz",
"has_sig": false,
"md5_digest": "c40c6864dafb6270c94d2013ce3c5533",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3358026,
"upload_time": "2018-08-15T20:45:34",
"url": "https://files.pythonhosted.org/packages/6f/1f/d9fd3da74dac55825bfd54a8e4e45b51f5d3d3fb9cd38c002323b86d0762/open-fortran-parser-0.5.3.tar.gz"
}
],
"0.5.4": [
{
"comment_text": "",
"digests": {
"md5": "9c1d9e58b8e9cb13138532310ed8efa4",
"sha256": "ca699282b7dbf6df59cbb63225a915f27c082ef8c246d02e60bb81270dff1557"
},
"downloads": -1,
"filename": "open_fortran_parser-0.5.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9c1d9e58b8e9cb13138532310ed8efa4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3344482,
"upload_time": "2019-04-03T01:21:32",
"url": "https://files.pythonhosted.org/packages/6f/3b/a3b7331bdf730a638d244c40d29bba7f4c296c0d9290dc6cad8cc6e9a5be/open_fortran_parser-0.5.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "049e6bbac1331a37094ca37529cf6118",
"sha256": "8e1c955ff41c859a6e7912d814c08d373faecd9fb58a162e6884c151bc55971b"
},
"downloads": -1,
"filename": "open-fortran-parser-0.5.4.tar.gz",
"has_sig": false,
"md5_digest": "049e6bbac1331a37094ca37529cf6118",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3359073,
"upload_time": "2019-04-03T01:21:35",
"url": "https://files.pythonhosted.org/packages/b3/cd/0cfb6f4bba4c5265dd386893271d2635a69a5f145feafd0d01adabafa0fd/open-fortran-parser-0.5.4.tar.gz"
}
],
"0.5.5": [
{
"comment_text": "",
"digests": {
"md5": "8e4e3a73f85a826e86e914b1a8416fed",
"sha256": "3c1111a5b464472f3b5ce75b0ac76421ef3683aec32125622ecfff26f4157a8f"
},
"downloads": -1,
"filename": "open_fortran_parser-0.5.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8e4e3a73f85a826e86e914b1a8416fed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3344589,
"upload_time": "2019-04-05T09:33:02",
"url": "https://files.pythonhosted.org/packages/77/4a/4bc14b1a14a1ed009dc745d6a291b1dce47f360d3aced502df2a1889963a/open_fortran_parser-0.5.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "32152ceccd6aacb990d61a6406dafd2b",
"sha256": "01e2c754e3494e71222385efa7152aecf7fbf3b336312f8ba243a795373cd987"
},
"downloads": -1,
"filename": "open-fortran-parser-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "32152ceccd6aacb990d61a6406dafd2b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3359993,
"upload_time": "2019-04-05T09:33:19",
"url": "https://files.pythonhosted.org/packages/28/0a/7ff44055b248201cc4f5c6efcf39066b91c8303efc922a12829f482f09b0/open-fortran-parser-0.5.5.tar.gz"
}
],
"0.5.6": [
{
"comment_text": "",
"digests": {
"md5": "c5b8393f5409fd55ab554912f65b7b9d",
"sha256": "42d68d1de4c3aa8df223610b2d95666efeedf334d703e44e0f4394898aed2f29"
},
"downloads": -1,
"filename": "open_fortran_parser-0.5.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c5b8393f5409fd55ab554912f65b7b9d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3346332,
"upload_time": "2019-04-09T12:40:09",
"url": "https://files.pythonhosted.org/packages/33/f2/b0c114dc0b80a8f691773c8c589a6b9d8eb85d7b9d6220aed804294a6c17/open_fortran_parser-0.5.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f2c118ebbbfbe9fec65e0b6191c520d7",
"sha256": "462745cfaeb2e39dae6f100bd8430722333a6363f21a5de7d9e873bac6c8aea3"
},
"downloads": -1,
"filename": "open-fortran-parser-0.5.6.tar.gz",
"has_sig": false,
"md5_digest": "f2c118ebbbfbe9fec65e0b6191c520d7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3362552,
"upload_time": "2019-04-09T12:40:26",
"url": "https://files.pythonhosted.org/packages/0d/2c/aa98376155f2a33bbce52f6ef430c0d123f7976e058bad8454a78ee06087/open-fortran-parser-0.5.6.tar.gz"
}
],
"0.6.0": [
{
"comment_text": "",
"digests": {
"md5": "5f1679bd2e5738e572ffa19ad74958c6",
"sha256": "b4cfda01e11de8c6622db50a95784b307c8d11bc595ae4bfe43400c790c0527b"
},
"downloads": -1,
"filename": "open_fortran_parser-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f1679bd2e5738e572ffa19ad74958c6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3616627,
"upload_time": "2019-04-10T02:19:00",
"url": "https://files.pythonhosted.org/packages/7b/4a/cd4d6a26e5d94301a45aaf005e05f8f7137203c11dbb0547223bd52c6784/open_fortran_parser-0.6.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1ca77096e3012c3cd28fae7c01927395",
"sha256": "795be25f2d3b156f0a3835d0b8b0a570e11360f9b8ee5b8712851c1e3349eb07"
},
"downloads": -1,
"filename": "open-fortran-parser-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "1ca77096e3012c3cd28fae7c01927395",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3632574,
"upload_time": "2019-04-10T02:19:18",
"url": "https://files.pythonhosted.org/packages/c6/bb/361e797cc8ca119a5574116f16d6d5c84069428b93b292680a57d8ec43a0/open-fortran-parser-0.6.0.tar.gz"
}
],
"0.6.1": [
{
"comment_text": "",
"digests": {
"md5": "08adaa63fd9d08baec3ec2edc07bb495",
"sha256": "f0cf4f9e1abc9e5f1e88f80dbbd86dc22a51e487eb2c687cf0d580f3de2e8495"
},
"downloads": -1,
"filename": "open_fortran_parser-0.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "08adaa63fd9d08baec3ec2edc07bb495",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3617187,
"upload_time": "2019-09-06T13:30:24",
"url": "https://files.pythonhosted.org/packages/aa/e0/c355c75cc46f9438f0f477794cc3952d36cd05cd7dc24c3e3e179e640e82/open_fortran_parser-0.6.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1ce26c24afd71cead2b97b152929facc",
"sha256": "843f9387549e3d1c21122e9ea3456000b5071e3b443826b3be795164816bb564"
},
"downloads": -1,
"filename": "open-fortran-parser-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "1ce26c24afd71cead2b97b152929facc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3633268,
"upload_time": "2019-09-06T13:30:28",
"url": "https://files.pythonhosted.org/packages/b0/10/d6544583cd55c53419f07314f604fdf3c550b224bfd968068e2e042e606c/open-fortran-parser-0.6.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "08adaa63fd9d08baec3ec2edc07bb495",
"sha256": "f0cf4f9e1abc9e5f1e88f80dbbd86dc22a51e487eb2c687cf0d580f3de2e8495"
},
"downloads": -1,
"filename": "open_fortran_parser-0.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "08adaa63fd9d08baec3ec2edc07bb495",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 3617187,
"upload_time": "2019-09-06T13:30:24",
"url": "https://files.pythonhosted.org/packages/aa/e0/c355c75cc46f9438f0f477794cc3952d36cd05cd7dc24c3e3e179e640e82/open_fortran_parser-0.6.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1ce26c24afd71cead2b97b152929facc",
"sha256": "843f9387549e3d1c21122e9ea3456000b5071e3b443826b3be795164816bb564"
},
"downloads": -1,
"filename": "open-fortran-parser-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "1ce26c24afd71cead2b97b152929facc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 3633268,
"upload_time": "2019-09-06T13:30:28",
"url": "https://files.pythonhosted.org/packages/b0/10/d6544583cd55c53419f07314f604fdf3c550b224bfd968068e2e042e606c/open-fortran-parser-0.6.1.tar.gz"
}
]
}