Mimics Fortran textual IO in Python
FORTRAN format interpreter for Python
Generates text from a Python list of variables or will read a line of text into Python variables according to the FORTRAN format statement passed.
To read Fortran records,
import fortranformat as ff header_line = FortranRecordReader('(A15, A15, A15)') header_line.read(' x y z') [' x', ' y', ' z'] line = FortranRecordReader('(3F15.3)') line.read(' 1.000 0.000 0.500') # Returns [1.0, 0.0, 0.5] line.read(' 1.100 0.100 0.600') # Returns [1.1, 0.1, 0.6]
To write Fortran records,
import fortranformat as ff header_line = FortranRecordWriter('(A15, A15, A15)') header_line.write(['x', 'y', 'z']) # Results in ' x y z' line = FortranRecordWriter('(3F15.3)') line.write([1.0, 0.0, 0.5]) # Results in ' 1.000 0.000 0.500' line.write([1.1, 0.1, 0.6]) # Results in ' 1.100 0.100 0.600'
For more detailed usage, see the guide.
- At present the library mimics the IO of the Intel FORTRAN compiler v.9.1 run on a Linux system. Differences to other FORTRAN compilers and platforms are generally minor.
- The library should run on Python versions from at least 2.7
Generating the tests for a FORTRAN compiler
Characterisations for a selection of FORTRAN compilers already exists, but if you want to characterise a new compiler, do the following ...
- Configure the compile string under
compilerteststarget for your particular FORTRAN compiler e.g.
gfortran %s -o %swhere
%sis the input and output file placeholders respectively
- Configure the compiler tag under
gfortran_10_2_0_osx_intelthis is just used for naming although would advise to sticking to alphanumerics and underscores
make compilertests. This generates, compiles and executes hundreds of combinations of edit descriptor in the FORTRAN compiler under test and saves the results in the
.testfiles under the build directories.
- Move the
.testfiles to an appropriate new location under
tests/autogen/[input/output]into directories named
make buildteststo generate Python test files based on the generated
Build the tests using
Make sure that pytest is installed then run using
Note that some of the F output edit descriptors fail due to limitations in floating point number representation
To run a reduced test suite where time and resources are limited, use the following
Deploying a new package version
Update versions in
To create a local build to test run ...
python setup.py build sdist --formats=gztar
To upload a version to PyPI run ...
python setup.py sdist twine upload dist/<new version>
Although the library has a large body of automatically generated test code behind it, it has not been extensively user tested. Bug reports are welcome!
Please report bugs to,
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.