diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 07:34:22 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 07:34:22 +0000 |
commit | 6ab5786f0380abdeecb71c67c140dbee82e56d6b (patch) | |
tree | f657fe427094cb56f895ef31f503a06745af1461 | |
parent | 15512e3212d08a27a55ac410faa36b014b36d899 (diff) |
automatic import of python-fortranformatopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-fortranformat.spec | 366 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 368 insertions, 0 deletions
@@ -0,0 +1 @@ +/fortranformat-2.0.0.tar.gz diff --git a/python-fortranformat.spec b/python-fortranformat.spec new file mode 100644 index 0000000..0ea8ab2 --- /dev/null +++ b/python-fortranformat.spec @@ -0,0 +1,366 @@ +%global _empty_manifest_terminate_build 0 +Name: python-fortranformat +Version: 2.0.0 +Release: 1 +Summary: Mimics Fortran textual IO in Python +License: MIT License +URL: https://github.com/brendanarnold/py-fortranformat +Source0: https://mirrors.aliyun.com/pypi/web/packages/91/b8/12298bdd8516eb81d012267b270fd0c3850528204d3021af0ea72503b9db/fortranformat-2.0.0.tar.gz +BuildArch: noarch + + +%description +# 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](https://github.com/brendanarnold/py-fortranformat/blob/master/docs/wiki/guide.md). + +## Notes + +- 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 + +## Development + +### 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 ... + +1. Configure the compile string under `compilertests` target for your particular FORTRAN compiler e.g. `gfortran %s -o %s` where `%s` is the input and output file placeholders respectively +2. Configure the compiler tag under `compilertests` e.g. `gfortran_10_2_0_osx_intel` this is just used for naming although would advise to sticking to alphanumerics and underscores +3. Run `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 `.test` files under the build directories. +4. Move the `.test` files to an appropriate new location under `tests/autogen/[input/output]` into directories named `raw` +5. Run `make buildtests` to generate Python test files based on the generated `.test` files + +### Running tests + +Build the tests using + +`make buildtests` + +Make sure that pytest is installed then run using + +`make runtests` + +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 + +`make runminimaltests` + +To run a performance test, which currently only covers the reading and writing of floats, use the following + +`make runperformancetests` + +### Deploying a new package version + +Update versions in `setup.py` and `__init__.py` + +Update `CHANGELOG.md` + +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> +``` + +## Bugs + +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, + +https://github.com/brendanarnold/py-fortranformat/issues + +%package -n python3-fortranformat +Summary: Mimics Fortran textual IO in Python +Provides: python-fortranformat +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-fortranformat +# 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](https://github.com/brendanarnold/py-fortranformat/blob/master/docs/wiki/guide.md). + +## Notes + +- 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 + +## Development + +### 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 ... + +1. Configure the compile string under `compilertests` target for your particular FORTRAN compiler e.g. `gfortran %s -o %s` where `%s` is the input and output file placeholders respectively +2. Configure the compiler tag under `compilertests` e.g. `gfortran_10_2_0_osx_intel` this is just used for naming although would advise to sticking to alphanumerics and underscores +3. Run `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 `.test` files under the build directories. +4. Move the `.test` files to an appropriate new location under `tests/autogen/[input/output]` into directories named `raw` +5. Run `make buildtests` to generate Python test files based on the generated `.test` files + +### Running tests + +Build the tests using + +`make buildtests` + +Make sure that pytest is installed then run using + +`make runtests` + +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 + +`make runminimaltests` + +To run a performance test, which currently only covers the reading and writing of floats, use the following + +`make runperformancetests` + +### Deploying a new package version + +Update versions in `setup.py` and `__init__.py` + +Update `CHANGELOG.md` + +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> +``` + +## Bugs + +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, + +https://github.com/brendanarnold/py-fortranformat/issues + +%package help +Summary: Development documents and examples for fortranformat +Provides: python3-fortranformat-doc +%description help +# 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](https://github.com/brendanarnold/py-fortranformat/blob/master/docs/wiki/guide.md). + +## Notes + +- 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 + +## Development + +### 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 ... + +1. Configure the compile string under `compilertests` target for your particular FORTRAN compiler e.g. `gfortran %s -o %s` where `%s` is the input and output file placeholders respectively +2. Configure the compiler tag under `compilertests` e.g. `gfortran_10_2_0_osx_intel` this is just used for naming although would advise to sticking to alphanumerics and underscores +3. Run `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 `.test` files under the build directories. +4. Move the `.test` files to an appropriate new location under `tests/autogen/[input/output]` into directories named `raw` +5. Run `make buildtests` to generate Python test files based on the generated `.test` files + +### Running tests + +Build the tests using + +`make buildtests` + +Make sure that pytest is installed then run using + +`make runtests` + +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 + +`make runminimaltests` + +To run a performance test, which currently only covers the reading and writing of floats, use the following + +`make runperformancetests` + +### Deploying a new package version + +Update versions in `setup.py` and `__init__.py` + +Update `CHANGELOG.md` + +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> +``` + +## Bugs + +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, + +https://github.com/brendanarnold/py-fortranformat/issues + +%prep +%autosetup -n fortranformat-2.0.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-fortranformat -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.0-1 +- Package Spec generated @@ -0,0 +1 @@ +b4b2e1f1289f89dc686670cc6bbdcd8b fortranformat-2.0.0.tar.gz |