summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-03-09 15:47:02 +0000
committerCoprDistGit <infra@openeuler.org>2023-03-09 15:47:02 +0000
commitd479e1cf55f03fbff410166a63e0bcbec5f61b41 (patch)
treef25a94736034b766244ba5008d6990c934732abd
parent62cd47fb15d1f9016076dd00cf2a027f925de505 (diff)
automatic import of python-pypng
-rw-r--r--.gitignore1
-rw-r--r--python-pypng.spec1440
-rw-r--r--sources1
3 files changed, 1442 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..bf8ec57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pypng-0.20220715.0.tar.gz
diff --git a/python-pypng.spec b/python-pypng.spec
new file mode 100644
index 0000000..a6bc8fb
--- /dev/null
+++ b/python-pypng.spec
@@ -0,0 +1,1440 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pypng
+Version: 0.20220715.0
+Release: 1
+Summary: Pure Python library for saving and loading PNG images
+License: MIT
+URL: https://gitlab.com/drj11/pypng
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/93/cd/112f092ec27cca83e0516de0a3368dbd9128c187fb6b52aaaa7cde39c96d/pypng-0.20220715.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# README for PyPNG
+
+drj@pobox.com
+
+
+# INTRODUCTION
+
+PNG module for Python. PyPNG is written entirely in Python.
+
+- PyPNG home page: https://gitlab.com/drj11/pypng/
+- PyPNG Documentation: https://pypng.readthedocs.io/en/latest/
+- PyPNG mailing list: https://groups.google.com/forum/#!forum/pypng-users
+
+
+## QUICK START
+
+ import png
+ png.from_array([[255, 0, 0, 255],
+ [0, 255, 255, 0]], 'L').save("small_smiley.png")
+
+After that, try `import png` then `help(png)`.
+Also, lickable HTML documentation appears in the `html/` directory.
+If HTML is no good then you could try the ReST sources
+in the `man/` directory.
+
+
+## INSTALLATION
+
+PyPNG is pure Python and has no dependencies.
+It requires Python 3.5 or any compatible higher version.
+
+To install PyPNG package via pip use:
+
+ python -m pip install git+https://gitlab.com/drj11/pypng@pypng-0.20220715.0
+
+After install use
+
+ `import png`
+
+to access the `png` module in your Python program.
+
+You can also install from source using `setuptools`.
+PyPNG uses `setup.cfg` and `pyproject.toml` to record its
+configuration.
+
+To install from (version controlled) sources using a suitable
+version of `pip`:
+
+`cd` into the directory and execute the command:
+
+ python -m pip install .
+
+PyPNG is so simple, that you don't need installation tools.
+You can copy `code/png.py` wherever you like.
+It's intended that you can copy `png.py` into
+your application and distribute it.
+The following `curl` command should copy the latest version into
+your current directory:
+
+ curl -LO https://gitlab.com/drj11/pypng/-/raw/main/code/png.py
+
+
+## RELEASE NOTES
+
+(For issues see https://gitlab.com/drj11/pypng/-/issues/ )
+
+
+### Release (the next)
+
+### Release 0.20220715.0
+
+Development moved to gitlab: https://gitlab.com/drj11/pypng
+
+If you pass an empty file to PyPNG
+it now raises the builtin Python exception `EOFError`.
+This should make it easier to diagnose _empty file_ problems separately
+from genuine format errors
+(which use `png.FormatError`).
+This is a slightly breaking change to the API.
+
+New `prirowpng` tool to join PNG images in a row left-to-right
+(old internal `pipcat` tool).
+
+New `pricolpng` tool to join PNG images in a column top-to-bottom.
+
+Support for plain PGM files (magic number P2) added to `pripamtopng`.
+
+New `priplan9topng` tool to convert from Plan 9 image format to PNG.
+In reality this has been lurking in the codebase for years, but
+has recently been converted to Python 3.
+The author has only a limited collection of Plan 9 images,
+which limits the testing that can be done.
+The author welcomes bug reports for Plan 9 images.
+
+The `priplan9topng` tool has an even more experimental option
+`--font` which converts Plan 9 subfont files to a sequence of
+PNG files.
+
+
+### Release 0.0.21
+
+Support for Python 2 is dropped.
+Python 3.5 and onwards are supported.
+Some of the ancillary tools are modified to work on Python 3.
+
+Installs via wheel files.
+
+`prichunkpng` command line tool now has some new options to add
+chunks:
+- `--iccprofile` to add a `iCCP` chunk (ICC Profile);
+- `--physical` to add a `pHYs` chunk,
+ specifying the intended pixel size;
+- `--sigbit` to add a `sBIT` chunk,
+ specifying the encoded significant bits;
+- `--transparent` to add a `tRNS` chunk,
+ specifying the transparent colour.
+
+`priditherpng` command line tool standardised and
+converted to Python 3.
+
+`pripngtopam` tool now has a `--plain` option to output plain PGM
+and PPM formats. The `topam` part of the name is a bit of a
+misnomer: when possible (L and RGB PNG files) the tool will
+output either a PGM (grey) or a PPM (RGB) file. Essentially all
+tools that can process a PAM file can also process a PGM or a
+PPM file. PAM files cannot be _plain_ so using the option
+will raise an error in the case where a true PAM file is
+written.
+
+Better error messages when you write the wrong number of rows.
+
+(Slightly experimentally) running the `png` module as a command
+line tool, with `python -m png`, will report the version and
+file location of the `png` module.
+
+
+### Release 0.0.20
+
+Support for earlier versions of Python is dropped.
+Python 3.4 and onwards are supported.
+Python 2.7 also works, but this is the last
+release to support any version of Python 2.
+
+Cython code is removed, which simplifies the implementation.
+
+Removed the (optional) dependency `setuptools`.
+
+Changed the default for `png.Writer` to be greyscale.
+
+Removed 3D support from `.from_array()`.
+
+
+### Release 0.0.19
+
+Support for earlier versions of Python is dropped in order to
+simplify the code.
+From the Python 3.x series all versions from 3.2 onward are supported.
+From the 2.x series only Python 2.6 and 2.7 are supported.
+
+Code cleaned.
+Tests renamed and more organised.
+Generally Flake 8 compliant.
+Fewer special cases for ancient versions of Python.
+
+The row length is checked when writing PNG files.
+Previously it was possible to write badly formed PNG files
+by passing in rows of the wrong length.
+
+`pHYS` chunk is now processed.
+
+The `Writer()` interface now supports source pixels
+that have a different bitdepth for each channel.
+To exploit this, pass in a tuple for the bitdepth argument.
+
+Ancillary tools regularised and simplified.
+
+`pripamtopng` command line tool converts NetPBM PNM/PAM files to PNG.
+Previously `png.py` did this.
+Note that only one input file is converted,
+if you have intensity and opacity in separate files,
+you have two options:
+either use `pamstack` to convert them into a single PAM file and
+convert that, or
+convert each file to PNG, then use `priweavepng` to weave them together.
+Both will work.
+
+`pripngtopam` command line tool converts PNG to NetPBM PNM/PAM file.
+Previously `png.py` did this.
+
+`python -m pngsuite` is now a command line tool to
+write various images from the PNG suite of test images.
+Previously this was possible using `gen`.
+
+`priweavepng` command line tool performs channel extraction across
+multiple images.
+This is a more general version of `pipstack` (which has been removed),
+and is inspired by `pamstack` from NetPBM.
+
+The `--interlace` option available on many previous tools is
+now only available on `priweavepng`,
+making it the preferred tool for generating interlaced PNGs.
+
+`prichunkpng` command line tool adds and deletes chunks and
+"intelligently" knows about transparent, gamma, background chunks.
+It is the preferred tool for adding those chunks,
+which was previously possible using various options of other tools.
+
+`gen` has been renamed to `priforgepng`.
+
+`priforgepng` uses centre pixel sampling, which means that a 256 pixel
+wide 8-bit gradient takes on all possible 256 values.
+It also improves output for very small images.
+
+`priforgepng` uses `Fraction` for internal maths meaning that
+the stripe patterns are accurate and do not have loose pixels.
+
+`priforgepng` only outputs greyscale PNG files
+(but see next item for a feature to generate colour PNGs).
+
+`priforgepng` can output multiple PNGs onto the same stream.
+This aligns well with a feature of `priweavepng` which
+accepts multiple PNGs from stdin.
+LA, RGB, and RGBA test images can be generated by
+piping `priforgepng` into `priweavepng`:
+`priforgepng RTL RTR RBR | priweavepng - - -`
+will generate an RGB PNG.
+
+
+### Release 0.0.18
+
+Thanks to `github.com/sean-duffy`,
+`.from_array()` can now take a 3D array.
+
+Converting to PNMs was broken in Python 3; this is now fixed.
+Issue 26: https://gitlab.com/drj11/pypng/-/issues/26
+
+
+### Release 0.0.17
+
+Various fixes when running on Python 3 and Windows.
+Merging pull requests from `github.com/ironfroggy` and
+`github.com/techtonik`,
+and merging by hand a commit from `github.com/Scondo`.
+
+
+### Release 0.0.16
+
+Compatible with nose: `nosetests png.py` now works.
+
+Allow any "file-like" object as an input.
+
+Handle newlines in `texttopng`.
+
+
+### Release 0.0.15
+
+Fixed various URLs to point at github.com instead of googlecode.
+
+
+### Release 0.0.14
+
+When using `png.py` as a command line tool,
+it can now produce non-square test images.
+
+PyPNG now installs "out of the box" on Python 3 on a plain install
+(previously `distribute` or `pip` was required).
+
+PyPNG welcomes the following community contributions:
+
+ Joaquín Cuenca Abela speeds up PNG reading when Cython is available.
+
+ Josh Bleecher Snyder adds a lenient mode
+ which has relaxed checksum checking.
+
+ nathan@dunfield.info fixed a problem writing files
+ when using the command line tool on Windows (Issue 62).
+
+The following issues have been fixed:
+
+ On github:
+
+ Issue 6: Palette processing is annoying
+
+ On googlecode:
+
+ Issue 62: Problem writing PNG files on Windows
+
+Development has moved from googlecode to github.
+All issues below here, and the one immediately above,
+are from the googlecode issue tracker.
+All newer issue should be on github.
+
+
+### Release 0.0.13
+
+PyPNG now installs "out of the box" on Python 3.
+Thanks to simon.sapin@kozea.fr and nathan@dunfield.info for the patch.
+
+The following issues have been fixed:
+
+ Issue 63: setup.py does not use 2to3
+ Issue 64: Typo in documentation
+
+
+### Release 0.0.12
+
+PyPNG now works on Python 3 if you use the `2to3` tool.
+Fix for converting grey images to RGBA.
+
+The following issues have been fixed:
+
+ Issue 60: Greyscale images not properly being converted to RGBA
+ Issue 61: Doesn't work on Python 3
+
+
+### Release 0.0.11
+
+Added the "How Fast is PyPNG" section to the documentation.
+Changed it so that more PNG formats return their rows as
+Python `array.array` instances.
+
+
+### Release 0.0.10
+
+Fix for read_flat method (broken for ages).
+
+The following issues have been fixed:
+
+ Issue 56: read_flat broken
+
+
+### Release 0.0.9
+
+Tentative fix for a deprecation warning on 64-bit Python 2.5 systems.
+Conversion tool for Plan 9 images.
+
+Issue 54 (below) is tentative.
+The PyPNG developers have been unable to reproduce the error
+(as it seems to be on 64-bit Python 2.5 systems);
+any user reports would be most welcome.
+
+The following issues have been fixed:
+
+ Issue 54: Deprecation warnings when using pypng.
+ Issue 55: Cannot convert Plan 9 images.
+
+
+### Release 0.0.8
+
+Mostly more robust to dodgy input PNGs,
+as a result of testing with `brokensuite`.
+One fixed bug was a critical:
+an infinite loop for a least one input (Issue 52 below).
+
+The following issues have been fixed:
+
+ Issue 47: Leading blanks when using write_packed.
+ Issue 48: pipdither fails when input has no gamma chunk.
+ Issue 49: pipdither fail with 1-bit input.
+ Issue 50: pipchunk adds second gamma chunk.
+ Issue 51: piprgb and pipasgrey fail for color mapped images.
+ Issue 52: Some inputs cause infinite loop.
+
+
+### Release 0.0.7
+
+Better documentation (in `html/ex.html` mostly) for NumPy integration.
+
+The following issues have been fixed:
+
+ Issue 46: Unclear how to get PNG pixel data into and out of NumPy.
+
+
+### Release 0.0.6
+
+NumPy integer types now work.
+
+The following issues have been fixed:
+
+ Issue 44: Cannot use numpy.uint16 for pixel values.
+
+
+### Release 0.0.5
+
+`sBIT` chunks are now handled,
+meaning that PyPNG can handle any (single) bit depth from 1 to 16
+from end to end.
+
+The following issues have been fixed:
+
+ Issue 28: Does not add sBIT chunk.
+ Issue 36: Ignores sBIT chunk when present.
+
+
+### Release 0.0.4
+
+PyPNG now works on Python 2.2
+(significant for Symbian users as PyS60 is based on Python 2.2).
+Not all features are supported on Python 2.2.
+
+The following issues have been fixed:
+
+ Issue 16: Source and doc uses 'K' where it should use 'L'.
+ Issue 32: Does not accept packed data.
+ Issue 33: Cannot create greyscale PNG with transparency.
+ Issue 35: Does not work on Python 2.2.
+
+
+### Release 0.0.3
+
+Handling PAM files allows end to end handling of alpha channels in
+workflows that involve both Netpbm formats and PNG.
+PyPNG now works in Python 2.3.
+
+The following issues have been fixed:
+
+ Issue 14: Does not read PAM files.
+ Issue 15: Does not write PAM files.
+ Issue 25: Incorrect handling of tRNS chunk.
+ Issue 26: asRGBA8 method crashes out for color type 2 images.
+ Issue 27: Fails on Python 2.3.
+
+
+### Release 0.0.2
+
+Lickable HTML documentation is now provided (see the html/ directory),
+generated by Sphinx.
+
+The following issues have been fixed:
+
+ Issue 8: Documentation is not lickable.
+ Issue 9: Advantage over PIL is not clear.
+ Issue 19: Bogus message for PNM inputs with unsupported maxval
+ Issue 20: Cannot write large PNG files
+
+
+### Release 0.0.1
+
+Stuff happened.
+
+
+## MANIFEST
+
+- .../ - top-level crud (like this README, and setup.py).
+- .../asset - assets (needed for testing)
+- .../code/ - the Python code.
+- .../man/ - manuals (in source/plain-text).
+- .../proc/ - documented procedures (release procedure).
+
+
+## REFERENCES
+
+- Python: www.python.org
+- PNG: http://www.w3.org/TR/PNG/
+
+## END
+
+
+%package -n python3-pypng
+Summary: Pure Python library for saving and loading PNG images
+Provides: python-pypng
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pypng
+# README for PyPNG
+
+drj@pobox.com
+
+
+# INTRODUCTION
+
+PNG module for Python. PyPNG is written entirely in Python.
+
+- PyPNG home page: https://gitlab.com/drj11/pypng/
+- PyPNG Documentation: https://pypng.readthedocs.io/en/latest/
+- PyPNG mailing list: https://groups.google.com/forum/#!forum/pypng-users
+
+
+## QUICK START
+
+ import png
+ png.from_array([[255, 0, 0, 255],
+ [0, 255, 255, 0]], 'L').save("small_smiley.png")
+
+After that, try `import png` then `help(png)`.
+Also, lickable HTML documentation appears in the `html/` directory.
+If HTML is no good then you could try the ReST sources
+in the `man/` directory.
+
+
+## INSTALLATION
+
+PyPNG is pure Python and has no dependencies.
+It requires Python 3.5 or any compatible higher version.
+
+To install PyPNG package via pip use:
+
+ python -m pip install git+https://gitlab.com/drj11/pypng@pypng-0.20220715.0
+
+After install use
+
+ `import png`
+
+to access the `png` module in your Python program.
+
+You can also install from source using `setuptools`.
+PyPNG uses `setup.cfg` and `pyproject.toml` to record its
+configuration.
+
+To install from (version controlled) sources using a suitable
+version of `pip`:
+
+`cd` into the directory and execute the command:
+
+ python -m pip install .
+
+PyPNG is so simple, that you don't need installation tools.
+You can copy `code/png.py` wherever you like.
+It's intended that you can copy `png.py` into
+your application and distribute it.
+The following `curl` command should copy the latest version into
+your current directory:
+
+ curl -LO https://gitlab.com/drj11/pypng/-/raw/main/code/png.py
+
+
+## RELEASE NOTES
+
+(For issues see https://gitlab.com/drj11/pypng/-/issues/ )
+
+
+### Release (the next)
+
+### Release 0.20220715.0
+
+Development moved to gitlab: https://gitlab.com/drj11/pypng
+
+If you pass an empty file to PyPNG
+it now raises the builtin Python exception `EOFError`.
+This should make it easier to diagnose _empty file_ problems separately
+from genuine format errors
+(which use `png.FormatError`).
+This is a slightly breaking change to the API.
+
+New `prirowpng` tool to join PNG images in a row left-to-right
+(old internal `pipcat` tool).
+
+New `pricolpng` tool to join PNG images in a column top-to-bottom.
+
+Support for plain PGM files (magic number P2) added to `pripamtopng`.
+
+New `priplan9topng` tool to convert from Plan 9 image format to PNG.
+In reality this has been lurking in the codebase for years, but
+has recently been converted to Python 3.
+The author has only a limited collection of Plan 9 images,
+which limits the testing that can be done.
+The author welcomes bug reports for Plan 9 images.
+
+The `priplan9topng` tool has an even more experimental option
+`--font` which converts Plan 9 subfont files to a sequence of
+PNG files.
+
+
+### Release 0.0.21
+
+Support for Python 2 is dropped.
+Python 3.5 and onwards are supported.
+Some of the ancillary tools are modified to work on Python 3.
+
+Installs via wheel files.
+
+`prichunkpng` command line tool now has some new options to add
+chunks:
+- `--iccprofile` to add a `iCCP` chunk (ICC Profile);
+- `--physical` to add a `pHYs` chunk,
+ specifying the intended pixel size;
+- `--sigbit` to add a `sBIT` chunk,
+ specifying the encoded significant bits;
+- `--transparent` to add a `tRNS` chunk,
+ specifying the transparent colour.
+
+`priditherpng` command line tool standardised and
+converted to Python 3.
+
+`pripngtopam` tool now has a `--plain` option to output plain PGM
+and PPM formats. The `topam` part of the name is a bit of a
+misnomer: when possible (L and RGB PNG files) the tool will
+output either a PGM (grey) or a PPM (RGB) file. Essentially all
+tools that can process a PAM file can also process a PGM or a
+PPM file. PAM files cannot be _plain_ so using the option
+will raise an error in the case where a true PAM file is
+written.
+
+Better error messages when you write the wrong number of rows.
+
+(Slightly experimentally) running the `png` module as a command
+line tool, with `python -m png`, will report the version and
+file location of the `png` module.
+
+
+### Release 0.0.20
+
+Support for earlier versions of Python is dropped.
+Python 3.4 and onwards are supported.
+Python 2.7 also works, but this is the last
+release to support any version of Python 2.
+
+Cython code is removed, which simplifies the implementation.
+
+Removed the (optional) dependency `setuptools`.
+
+Changed the default for `png.Writer` to be greyscale.
+
+Removed 3D support from `.from_array()`.
+
+
+### Release 0.0.19
+
+Support for earlier versions of Python is dropped in order to
+simplify the code.
+From the Python 3.x series all versions from 3.2 onward are supported.
+From the 2.x series only Python 2.6 and 2.7 are supported.
+
+Code cleaned.
+Tests renamed and more organised.
+Generally Flake 8 compliant.
+Fewer special cases for ancient versions of Python.
+
+The row length is checked when writing PNG files.
+Previously it was possible to write badly formed PNG files
+by passing in rows of the wrong length.
+
+`pHYS` chunk is now processed.
+
+The `Writer()` interface now supports source pixels
+that have a different bitdepth for each channel.
+To exploit this, pass in a tuple for the bitdepth argument.
+
+Ancillary tools regularised and simplified.
+
+`pripamtopng` command line tool converts NetPBM PNM/PAM files to PNG.
+Previously `png.py` did this.
+Note that only one input file is converted,
+if you have intensity and opacity in separate files,
+you have two options:
+either use `pamstack` to convert them into a single PAM file and
+convert that, or
+convert each file to PNG, then use `priweavepng` to weave them together.
+Both will work.
+
+`pripngtopam` command line tool converts PNG to NetPBM PNM/PAM file.
+Previously `png.py` did this.
+
+`python -m pngsuite` is now a command line tool to
+write various images from the PNG suite of test images.
+Previously this was possible using `gen`.
+
+`priweavepng` command line tool performs channel extraction across
+multiple images.
+This is a more general version of `pipstack` (which has been removed),
+and is inspired by `pamstack` from NetPBM.
+
+The `--interlace` option available on many previous tools is
+now only available on `priweavepng`,
+making it the preferred tool for generating interlaced PNGs.
+
+`prichunkpng` command line tool adds and deletes chunks and
+"intelligently" knows about transparent, gamma, background chunks.
+It is the preferred tool for adding those chunks,
+which was previously possible using various options of other tools.
+
+`gen` has been renamed to `priforgepng`.
+
+`priforgepng` uses centre pixel sampling, which means that a 256 pixel
+wide 8-bit gradient takes on all possible 256 values.
+It also improves output for very small images.
+
+`priforgepng` uses `Fraction` for internal maths meaning that
+the stripe patterns are accurate and do not have loose pixels.
+
+`priforgepng` only outputs greyscale PNG files
+(but see next item for a feature to generate colour PNGs).
+
+`priforgepng` can output multiple PNGs onto the same stream.
+This aligns well with a feature of `priweavepng` which
+accepts multiple PNGs from stdin.
+LA, RGB, and RGBA test images can be generated by
+piping `priforgepng` into `priweavepng`:
+`priforgepng RTL RTR RBR | priweavepng - - -`
+will generate an RGB PNG.
+
+
+### Release 0.0.18
+
+Thanks to `github.com/sean-duffy`,
+`.from_array()` can now take a 3D array.
+
+Converting to PNMs was broken in Python 3; this is now fixed.
+Issue 26: https://gitlab.com/drj11/pypng/-/issues/26
+
+
+### Release 0.0.17
+
+Various fixes when running on Python 3 and Windows.
+Merging pull requests from `github.com/ironfroggy` and
+`github.com/techtonik`,
+and merging by hand a commit from `github.com/Scondo`.
+
+
+### Release 0.0.16
+
+Compatible with nose: `nosetests png.py` now works.
+
+Allow any "file-like" object as an input.
+
+Handle newlines in `texttopng`.
+
+
+### Release 0.0.15
+
+Fixed various URLs to point at github.com instead of googlecode.
+
+
+### Release 0.0.14
+
+When using `png.py` as a command line tool,
+it can now produce non-square test images.
+
+PyPNG now installs "out of the box" on Python 3 on a plain install
+(previously `distribute` or `pip` was required).
+
+PyPNG welcomes the following community contributions:
+
+ Joaquín Cuenca Abela speeds up PNG reading when Cython is available.
+
+ Josh Bleecher Snyder adds a lenient mode
+ which has relaxed checksum checking.
+
+ nathan@dunfield.info fixed a problem writing files
+ when using the command line tool on Windows (Issue 62).
+
+The following issues have been fixed:
+
+ On github:
+
+ Issue 6: Palette processing is annoying
+
+ On googlecode:
+
+ Issue 62: Problem writing PNG files on Windows
+
+Development has moved from googlecode to github.
+All issues below here, and the one immediately above,
+are from the googlecode issue tracker.
+All newer issue should be on github.
+
+
+### Release 0.0.13
+
+PyPNG now installs "out of the box" on Python 3.
+Thanks to simon.sapin@kozea.fr and nathan@dunfield.info for the patch.
+
+The following issues have been fixed:
+
+ Issue 63: setup.py does not use 2to3
+ Issue 64: Typo in documentation
+
+
+### Release 0.0.12
+
+PyPNG now works on Python 3 if you use the `2to3` tool.
+Fix for converting grey images to RGBA.
+
+The following issues have been fixed:
+
+ Issue 60: Greyscale images not properly being converted to RGBA
+ Issue 61: Doesn't work on Python 3
+
+
+### Release 0.0.11
+
+Added the "How Fast is PyPNG" section to the documentation.
+Changed it so that more PNG formats return their rows as
+Python `array.array` instances.
+
+
+### Release 0.0.10
+
+Fix for read_flat method (broken for ages).
+
+The following issues have been fixed:
+
+ Issue 56: read_flat broken
+
+
+### Release 0.0.9
+
+Tentative fix for a deprecation warning on 64-bit Python 2.5 systems.
+Conversion tool for Plan 9 images.
+
+Issue 54 (below) is tentative.
+The PyPNG developers have been unable to reproduce the error
+(as it seems to be on 64-bit Python 2.5 systems);
+any user reports would be most welcome.
+
+The following issues have been fixed:
+
+ Issue 54: Deprecation warnings when using pypng.
+ Issue 55: Cannot convert Plan 9 images.
+
+
+### Release 0.0.8
+
+Mostly more robust to dodgy input PNGs,
+as a result of testing with `brokensuite`.
+One fixed bug was a critical:
+an infinite loop for a least one input (Issue 52 below).
+
+The following issues have been fixed:
+
+ Issue 47: Leading blanks when using write_packed.
+ Issue 48: pipdither fails when input has no gamma chunk.
+ Issue 49: pipdither fail with 1-bit input.
+ Issue 50: pipchunk adds second gamma chunk.
+ Issue 51: piprgb and pipasgrey fail for color mapped images.
+ Issue 52: Some inputs cause infinite loop.
+
+
+### Release 0.0.7
+
+Better documentation (in `html/ex.html` mostly) for NumPy integration.
+
+The following issues have been fixed:
+
+ Issue 46: Unclear how to get PNG pixel data into and out of NumPy.
+
+
+### Release 0.0.6
+
+NumPy integer types now work.
+
+The following issues have been fixed:
+
+ Issue 44: Cannot use numpy.uint16 for pixel values.
+
+
+### Release 0.0.5
+
+`sBIT` chunks are now handled,
+meaning that PyPNG can handle any (single) bit depth from 1 to 16
+from end to end.
+
+The following issues have been fixed:
+
+ Issue 28: Does not add sBIT chunk.
+ Issue 36: Ignores sBIT chunk when present.
+
+
+### Release 0.0.4
+
+PyPNG now works on Python 2.2
+(significant for Symbian users as PyS60 is based on Python 2.2).
+Not all features are supported on Python 2.2.
+
+The following issues have been fixed:
+
+ Issue 16: Source and doc uses 'K' where it should use 'L'.
+ Issue 32: Does not accept packed data.
+ Issue 33: Cannot create greyscale PNG with transparency.
+ Issue 35: Does not work on Python 2.2.
+
+
+### Release 0.0.3
+
+Handling PAM files allows end to end handling of alpha channels in
+workflows that involve both Netpbm formats and PNG.
+PyPNG now works in Python 2.3.
+
+The following issues have been fixed:
+
+ Issue 14: Does not read PAM files.
+ Issue 15: Does not write PAM files.
+ Issue 25: Incorrect handling of tRNS chunk.
+ Issue 26: asRGBA8 method crashes out for color type 2 images.
+ Issue 27: Fails on Python 2.3.
+
+
+### Release 0.0.2
+
+Lickable HTML documentation is now provided (see the html/ directory),
+generated by Sphinx.
+
+The following issues have been fixed:
+
+ Issue 8: Documentation is not lickable.
+ Issue 9: Advantage over PIL is not clear.
+ Issue 19: Bogus message for PNM inputs with unsupported maxval
+ Issue 20: Cannot write large PNG files
+
+
+### Release 0.0.1
+
+Stuff happened.
+
+
+## MANIFEST
+
+- .../ - top-level crud (like this README, and setup.py).
+- .../asset - assets (needed for testing)
+- .../code/ - the Python code.
+- .../man/ - manuals (in source/plain-text).
+- .../proc/ - documented procedures (release procedure).
+
+
+## REFERENCES
+
+- Python: www.python.org
+- PNG: http://www.w3.org/TR/PNG/
+
+## END
+
+
+%package help
+Summary: Development documents and examples for pypng
+Provides: python3-pypng-doc
+%description help
+# README for PyPNG
+
+drj@pobox.com
+
+
+# INTRODUCTION
+
+PNG module for Python. PyPNG is written entirely in Python.
+
+- PyPNG home page: https://gitlab.com/drj11/pypng/
+- PyPNG Documentation: https://pypng.readthedocs.io/en/latest/
+- PyPNG mailing list: https://groups.google.com/forum/#!forum/pypng-users
+
+
+## QUICK START
+
+ import png
+ png.from_array([[255, 0, 0, 255],
+ [0, 255, 255, 0]], 'L').save("small_smiley.png")
+
+After that, try `import png` then `help(png)`.
+Also, lickable HTML documentation appears in the `html/` directory.
+If HTML is no good then you could try the ReST sources
+in the `man/` directory.
+
+
+## INSTALLATION
+
+PyPNG is pure Python and has no dependencies.
+It requires Python 3.5 or any compatible higher version.
+
+To install PyPNG package via pip use:
+
+ python -m pip install git+https://gitlab.com/drj11/pypng@pypng-0.20220715.0
+
+After install use
+
+ `import png`
+
+to access the `png` module in your Python program.
+
+You can also install from source using `setuptools`.
+PyPNG uses `setup.cfg` and `pyproject.toml` to record its
+configuration.
+
+To install from (version controlled) sources using a suitable
+version of `pip`:
+
+`cd` into the directory and execute the command:
+
+ python -m pip install .
+
+PyPNG is so simple, that you don't need installation tools.
+You can copy `code/png.py` wherever you like.
+It's intended that you can copy `png.py` into
+your application and distribute it.
+The following `curl` command should copy the latest version into
+your current directory:
+
+ curl -LO https://gitlab.com/drj11/pypng/-/raw/main/code/png.py
+
+
+## RELEASE NOTES
+
+(For issues see https://gitlab.com/drj11/pypng/-/issues/ )
+
+
+### Release (the next)
+
+### Release 0.20220715.0
+
+Development moved to gitlab: https://gitlab.com/drj11/pypng
+
+If you pass an empty file to PyPNG
+it now raises the builtin Python exception `EOFError`.
+This should make it easier to diagnose _empty file_ problems separately
+from genuine format errors
+(which use `png.FormatError`).
+This is a slightly breaking change to the API.
+
+New `prirowpng` tool to join PNG images in a row left-to-right
+(old internal `pipcat` tool).
+
+New `pricolpng` tool to join PNG images in a column top-to-bottom.
+
+Support for plain PGM files (magic number P2) added to `pripamtopng`.
+
+New `priplan9topng` tool to convert from Plan 9 image format to PNG.
+In reality this has been lurking in the codebase for years, but
+has recently been converted to Python 3.
+The author has only a limited collection of Plan 9 images,
+which limits the testing that can be done.
+The author welcomes bug reports for Plan 9 images.
+
+The `priplan9topng` tool has an even more experimental option
+`--font` which converts Plan 9 subfont files to a sequence of
+PNG files.
+
+
+### Release 0.0.21
+
+Support for Python 2 is dropped.
+Python 3.5 and onwards are supported.
+Some of the ancillary tools are modified to work on Python 3.
+
+Installs via wheel files.
+
+`prichunkpng` command line tool now has some new options to add
+chunks:
+- `--iccprofile` to add a `iCCP` chunk (ICC Profile);
+- `--physical` to add a `pHYs` chunk,
+ specifying the intended pixel size;
+- `--sigbit` to add a `sBIT` chunk,
+ specifying the encoded significant bits;
+- `--transparent` to add a `tRNS` chunk,
+ specifying the transparent colour.
+
+`priditherpng` command line tool standardised and
+converted to Python 3.
+
+`pripngtopam` tool now has a `--plain` option to output plain PGM
+and PPM formats. The `topam` part of the name is a bit of a
+misnomer: when possible (L and RGB PNG files) the tool will
+output either a PGM (grey) or a PPM (RGB) file. Essentially all
+tools that can process a PAM file can also process a PGM or a
+PPM file. PAM files cannot be _plain_ so using the option
+will raise an error in the case where a true PAM file is
+written.
+
+Better error messages when you write the wrong number of rows.
+
+(Slightly experimentally) running the `png` module as a command
+line tool, with `python -m png`, will report the version and
+file location of the `png` module.
+
+
+### Release 0.0.20
+
+Support for earlier versions of Python is dropped.
+Python 3.4 and onwards are supported.
+Python 2.7 also works, but this is the last
+release to support any version of Python 2.
+
+Cython code is removed, which simplifies the implementation.
+
+Removed the (optional) dependency `setuptools`.
+
+Changed the default for `png.Writer` to be greyscale.
+
+Removed 3D support from `.from_array()`.
+
+
+### Release 0.0.19
+
+Support for earlier versions of Python is dropped in order to
+simplify the code.
+From the Python 3.x series all versions from 3.2 onward are supported.
+From the 2.x series only Python 2.6 and 2.7 are supported.
+
+Code cleaned.
+Tests renamed and more organised.
+Generally Flake 8 compliant.
+Fewer special cases for ancient versions of Python.
+
+The row length is checked when writing PNG files.
+Previously it was possible to write badly formed PNG files
+by passing in rows of the wrong length.
+
+`pHYS` chunk is now processed.
+
+The `Writer()` interface now supports source pixels
+that have a different bitdepth for each channel.
+To exploit this, pass in a tuple for the bitdepth argument.
+
+Ancillary tools regularised and simplified.
+
+`pripamtopng` command line tool converts NetPBM PNM/PAM files to PNG.
+Previously `png.py` did this.
+Note that only one input file is converted,
+if you have intensity and opacity in separate files,
+you have two options:
+either use `pamstack` to convert them into a single PAM file and
+convert that, or
+convert each file to PNG, then use `priweavepng` to weave them together.
+Both will work.
+
+`pripngtopam` command line tool converts PNG to NetPBM PNM/PAM file.
+Previously `png.py` did this.
+
+`python -m pngsuite` is now a command line tool to
+write various images from the PNG suite of test images.
+Previously this was possible using `gen`.
+
+`priweavepng` command line tool performs channel extraction across
+multiple images.
+This is a more general version of `pipstack` (which has been removed),
+and is inspired by `pamstack` from NetPBM.
+
+The `--interlace` option available on many previous tools is
+now only available on `priweavepng`,
+making it the preferred tool for generating interlaced PNGs.
+
+`prichunkpng` command line tool adds and deletes chunks and
+"intelligently" knows about transparent, gamma, background chunks.
+It is the preferred tool for adding those chunks,
+which was previously possible using various options of other tools.
+
+`gen` has been renamed to `priforgepng`.
+
+`priforgepng` uses centre pixel sampling, which means that a 256 pixel
+wide 8-bit gradient takes on all possible 256 values.
+It also improves output for very small images.
+
+`priforgepng` uses `Fraction` for internal maths meaning that
+the stripe patterns are accurate and do not have loose pixels.
+
+`priforgepng` only outputs greyscale PNG files
+(but see next item for a feature to generate colour PNGs).
+
+`priforgepng` can output multiple PNGs onto the same stream.
+This aligns well with a feature of `priweavepng` which
+accepts multiple PNGs from stdin.
+LA, RGB, and RGBA test images can be generated by
+piping `priforgepng` into `priweavepng`:
+`priforgepng RTL RTR RBR | priweavepng - - -`
+will generate an RGB PNG.
+
+
+### Release 0.0.18
+
+Thanks to `github.com/sean-duffy`,
+`.from_array()` can now take a 3D array.
+
+Converting to PNMs was broken in Python 3; this is now fixed.
+Issue 26: https://gitlab.com/drj11/pypng/-/issues/26
+
+
+### Release 0.0.17
+
+Various fixes when running on Python 3 and Windows.
+Merging pull requests from `github.com/ironfroggy` and
+`github.com/techtonik`,
+and merging by hand a commit from `github.com/Scondo`.
+
+
+### Release 0.0.16
+
+Compatible with nose: `nosetests png.py` now works.
+
+Allow any "file-like" object as an input.
+
+Handle newlines in `texttopng`.
+
+
+### Release 0.0.15
+
+Fixed various URLs to point at github.com instead of googlecode.
+
+
+### Release 0.0.14
+
+When using `png.py` as a command line tool,
+it can now produce non-square test images.
+
+PyPNG now installs "out of the box" on Python 3 on a plain install
+(previously `distribute` or `pip` was required).
+
+PyPNG welcomes the following community contributions:
+
+ Joaquín Cuenca Abela speeds up PNG reading when Cython is available.
+
+ Josh Bleecher Snyder adds a lenient mode
+ which has relaxed checksum checking.
+
+ nathan@dunfield.info fixed a problem writing files
+ when using the command line tool on Windows (Issue 62).
+
+The following issues have been fixed:
+
+ On github:
+
+ Issue 6: Palette processing is annoying
+
+ On googlecode:
+
+ Issue 62: Problem writing PNG files on Windows
+
+Development has moved from googlecode to github.
+All issues below here, and the one immediately above,
+are from the googlecode issue tracker.
+All newer issue should be on github.
+
+
+### Release 0.0.13
+
+PyPNG now installs "out of the box" on Python 3.
+Thanks to simon.sapin@kozea.fr and nathan@dunfield.info for the patch.
+
+The following issues have been fixed:
+
+ Issue 63: setup.py does not use 2to3
+ Issue 64: Typo in documentation
+
+
+### Release 0.0.12
+
+PyPNG now works on Python 3 if you use the `2to3` tool.
+Fix for converting grey images to RGBA.
+
+The following issues have been fixed:
+
+ Issue 60: Greyscale images not properly being converted to RGBA
+ Issue 61: Doesn't work on Python 3
+
+
+### Release 0.0.11
+
+Added the "How Fast is PyPNG" section to the documentation.
+Changed it so that more PNG formats return their rows as
+Python `array.array` instances.
+
+
+### Release 0.0.10
+
+Fix for read_flat method (broken for ages).
+
+The following issues have been fixed:
+
+ Issue 56: read_flat broken
+
+
+### Release 0.0.9
+
+Tentative fix for a deprecation warning on 64-bit Python 2.5 systems.
+Conversion tool for Plan 9 images.
+
+Issue 54 (below) is tentative.
+The PyPNG developers have been unable to reproduce the error
+(as it seems to be on 64-bit Python 2.5 systems);
+any user reports would be most welcome.
+
+The following issues have been fixed:
+
+ Issue 54: Deprecation warnings when using pypng.
+ Issue 55: Cannot convert Plan 9 images.
+
+
+### Release 0.0.8
+
+Mostly more robust to dodgy input PNGs,
+as a result of testing with `brokensuite`.
+One fixed bug was a critical:
+an infinite loop for a least one input (Issue 52 below).
+
+The following issues have been fixed:
+
+ Issue 47: Leading blanks when using write_packed.
+ Issue 48: pipdither fails when input has no gamma chunk.
+ Issue 49: pipdither fail with 1-bit input.
+ Issue 50: pipchunk adds second gamma chunk.
+ Issue 51: piprgb and pipasgrey fail for color mapped images.
+ Issue 52: Some inputs cause infinite loop.
+
+
+### Release 0.0.7
+
+Better documentation (in `html/ex.html` mostly) for NumPy integration.
+
+The following issues have been fixed:
+
+ Issue 46: Unclear how to get PNG pixel data into and out of NumPy.
+
+
+### Release 0.0.6
+
+NumPy integer types now work.
+
+The following issues have been fixed:
+
+ Issue 44: Cannot use numpy.uint16 for pixel values.
+
+
+### Release 0.0.5
+
+`sBIT` chunks are now handled,
+meaning that PyPNG can handle any (single) bit depth from 1 to 16
+from end to end.
+
+The following issues have been fixed:
+
+ Issue 28: Does not add sBIT chunk.
+ Issue 36: Ignores sBIT chunk when present.
+
+
+### Release 0.0.4
+
+PyPNG now works on Python 2.2
+(significant for Symbian users as PyS60 is based on Python 2.2).
+Not all features are supported on Python 2.2.
+
+The following issues have been fixed:
+
+ Issue 16: Source and doc uses 'K' where it should use 'L'.
+ Issue 32: Does not accept packed data.
+ Issue 33: Cannot create greyscale PNG with transparency.
+ Issue 35: Does not work on Python 2.2.
+
+
+### Release 0.0.3
+
+Handling PAM files allows end to end handling of alpha channels in
+workflows that involve both Netpbm formats and PNG.
+PyPNG now works in Python 2.3.
+
+The following issues have been fixed:
+
+ Issue 14: Does not read PAM files.
+ Issue 15: Does not write PAM files.
+ Issue 25: Incorrect handling of tRNS chunk.
+ Issue 26: asRGBA8 method crashes out for color type 2 images.
+ Issue 27: Fails on Python 2.3.
+
+
+### Release 0.0.2
+
+Lickable HTML documentation is now provided (see the html/ directory),
+generated by Sphinx.
+
+The following issues have been fixed:
+
+ Issue 8: Documentation is not lickable.
+ Issue 9: Advantage over PIL is not clear.
+ Issue 19: Bogus message for PNM inputs with unsupported maxval
+ Issue 20: Cannot write large PNG files
+
+
+### Release 0.0.1
+
+Stuff happened.
+
+
+## MANIFEST
+
+- .../ - top-level crud (like this README, and setup.py).
+- .../asset - assets (needed for testing)
+- .../code/ - the Python code.
+- .../man/ - manuals (in source/plain-text).
+- .../proc/ - documented procedures (release procedure).
+
+
+## REFERENCES
+
+- Python: www.python.org
+- PNG: http://www.w3.org/TR/PNG/
+
+## END
+
+
+%prep
+%autosetup -n pypng-0.20220715.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-pypng -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu Mar 09 2023 Python_Bot <Python_Bot@openeuler.org> - 0.20220715.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..c77c8f5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+7d9cce86ceb19524784ade86fb13a063 pypng-0.20220715.0.tar.gz