Skip to main content

Fortran Parsing, Unit Testing and Intellisense

Project description

PyPI

FORTPY

Python Emacs Intellisense and Unit Testing Support for Fortran

Fortpy is a python based parsing, unit testing and auto-complete framework for supporting Fortran 2003 including object oriented constructs. Auto-completion integration currently only available for emacs. Here are some of the features:

Python Package Installation

Fortpy requires the following python packages: - python-epc - argparse - paramiko if you will be editing over SSH using tramp in emacs and still want auto-complete support. - pyparsing - dateutil

If you install Fortpy using pip install the dependencies will automatically get installed.

pip install fortpy

Fortpy Configuration

In most real-usage scenarios, the out-of-the-box support for multiple libraries is incomplete. A configuration file can be created that gives additional information about source code folders to parse, server information for SSH editing over tramp and auto-completion configuration settings. After you have created a config.xml file on your system, you need to configure an environment variable to tell Fortpy where to find it:

export FORTPY_CONFIG="~/path/to/config.xml"

NOTE: Environment variables for emacs are set when it first starts; adding a config.xml file will not affect the emacs isense support until you restart emacs.

Screenshots

Here are some of the things you can do once Fortpy is integrated with Emacs using fortpy.el:

Help with call signatures of functions and subroutines.

Automatic Signature Suggestions

Help with call signatures of functions and subroutines.

Completion suggestions for both methods and variables embedded in user-defined types.

Embedded Member Suggestions

Completion suggestions for both methods and variables embedded in user-defined types.

Documentation strings for methods embedded in user-defined types

Bracket Complete Embedded Methods

Documentation strings for methods embedded in user-defined types.

Features

Auto-complete Support

  • Integration with emacs using virtualenv, epc and auto-complete.

  • Context-specific suggestions for variable names and available executables.

See the isense package documentation

XML Documentation Standard

Fortpy uses an XML documentation standard that is derived from the Microsoft XML code documentation standard. As such, many of the same tags and attributes are available for decorating the methods, types and variables in a Fortran module. Because the parsers were designed to work with Fortran 2003, they understand embedded methods in user types that point to other methods in the module. See the wiki page on documenting your code to work with Fortpy.

XML documentation standard allows for complex documentation strings and structures.

XML Documentation Example

Automated Unit Testing

Because Fortpy is aware of the structure and dependencies between modules, it can generate automated unit tests for individual functions. You can specify the tests to run in some XML documentation decorating the method to test. When the unit testing scripts are run, a fortran program gets generated and all the necessary dependencies are automatically included. After running the program, the framework tests the output and generates a similarity score. See the full documentation.

Code Version Support

Fortpy’s unit testing framework makes use of XML templates that specify the structure of input/output files to run and test. Using these same templates, the interoperability package allows input and ouput files to be converted between versions of the Fortran program. Since most Fortran programs run on simple text files for input, the interop package also gives support for XML input files to be used; scripts convert the XML input files to the correct plain-text format at run-time.

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

Fortpy-1.7.7.tar.gz (829.7 kB view details)

Uploaded Source

Built Distribution

Fortpy-1.7.7-py2.py3-none-any.whl (378.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file Fortpy-1.7.7.tar.gz.

File metadata

  • Download URL: Fortpy-1.7.7.tar.gz
  • Upload date:
  • Size: 829.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Fortpy-1.7.7.tar.gz
Algorithm Hash digest
SHA256 8e351ea2e5371c99c9257991cf4845f1151805e69b4ee7890553c369a3aad05b
MD5 8c2b64ad6ede66bf29f0720448fe4e5e
BLAKE2b-256 88e7c438e5dfb9a5c4686d2230aa7cce234fd24570fc97c2e70ba489f5add8cf

See more details on using hashes here.

File details

Details for the file Fortpy-1.7.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for Fortpy-1.7.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 719fa645b87da161ad9cbfe7c06a134e665dca16264bf0fcd41bd631d1bb991b
MD5 a7df741b90db0c4d562002e560623916
BLAKE2b-256 7bdf387d8dff7dd592f8de7eb4161323f2a3d2d8a140df82fbfbdf05a4526902

See more details on using hashes here.

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