Commit Graph

197 Commits

Author SHA1 Message Date
dgelessus e6779b021a Replace rsrcfork.open's rsrcfork parameter with a more usable version
The new fork parameter accepts strings, which are more understandable
than the old None/True/False values, and can be extended in the future.
2019-08-31 20:07:26 +02:00
dgelessus c4fe09dbf0 Improve errors when filter doesn't match required number of resources 2019-08-31 14:48:01 +02:00
dgelessus acdbbc89b2 Improve automatic fork selection when resource fork is invalid 2019-08-30 23:17:59 +02:00
dgelessus d7fb67fac1 Add better error checking for invalid resource files 2019-08-30 23:17:59 +02:00
dgelessus 5ede8a351a Rework how non-seekable streams are handled by ResourceFile
The broken non-seeking read implementation of ResourceFile is removed,
and non-seekable streams are now handled by reading the entire stream
data first and wrapping it in a BytesIO to make it seekable.

The manual selection of seeking/non-seeking reading has been removed as
well, since it is no longer needed and was already nearly useless.
2019-08-30 23:17:18 +02:00
dgelessus 7253c53d67 Add .editorconfig 2019-08-25 22:25:13 +02:00
dgelessus efd3848146 Reindent README.rst with spaces to fix nested list formatting
Unfortunately, reStructuredText requires nested lists to be exactly
visually aligned. There is no single indent size that works for all
lists - for example bullet point lists require two spaces, but numbered
lists require three spaces (or more, depending on how high the numbers
go). This makes reStructuredText incompatible with tab indents.
2019-08-25 22:15:34 +02:00
dgelessus f798928270 Rewrite, update and expand project descriptions 2019-08-25 21:37:50 +02:00
dgelessus ad7f9f5d6d Add Trove Python :: 3.7 classifier 2019-08-25 00:04:12 +02:00
dgelessus a8c09f19d1 Add Trove MacOS classifiers
Altough this library is OS-independent, it is specifically relevant to
Classic Mac OS and OS X, and provides some extra functionality on OS X
(reading actual resource forks, instead of resource fork data stored in
data forks/regular files).
2019-08-25 00:03:56 +02:00
dgelessus af4c465613 Update Topic trove classifiers
"Topic :: Software Development :: Libraries :: Python Modules" appears
to be specifically for libraries used to develop Python modules, and
not for Python modules in general. A few more appropriate classifiers
have been added instead.
2019-08-25 00:00:56 +02:00
dgelessus 4a759027f4 Update changelog entry on resource compression 2019-08-24 23:48:27 +02:00
dgelessus 3e28fa7fe0 Fix typos 2019-08-24 23:38:07 +02:00
dgelessus 8904f6e093 Refactor the rsrcfork.compress module into separate submodules
Each decompressor now has its own module, since they share almost no
code between each other.
2019-08-22 21:20:35 +02:00
dgelessus 4c32987cc3 Add decompression support for 'dcmp' (1)-compressed resources 2019-08-22 18:36:33 +02:00
dgelessus acd056973e Refactor rsrcfork.compress to prepare for 'dcmp' (1) support 2019-08-22 01:12:29 +02:00
dgelessus 3d444bda10 Move decompressed data length field into common compressed header
Previously it was handled separately (but identically) by both the
system and application decompression functions.
2019-08-21 23:30:20 +02:00
dgelessus 5bc2c0cc81 Add support for "application" compressed resources 2019-08-14 21:24:03 +02:00
dgelessus 360833f940 Refactor rsrcfork.compress to prepare for new compression type support 2019-07-14 21:41:14 +02:00
dgelessus 67a16d34a6 Add links to Alysis's resource compression article to README.rst 2019-07-14 11:47:34 +02:00
dgelessus 2fb1d02064 Add initial support for compressed resources
Not all compression formats are supported yet.
2019-07-14 02:16:49 +02:00
dgelessus 9adb188624 Clean up .gitignore
Removed a lot of unused/irrelevant entries (they were from GitHub's
.gitignore template for Python projects) and kept only those that
are actually needed/used.
2019-07-14 02:13:31 +02:00
dgelessus e98166d0a6 Remove IntelliJ-related entries from .gitignore
These should go into the local .git/info/exclude rather than the
.gitignore in the repo.
2019-07-14 02:13:31 +02:00
dgelessus ea2fcac692 Bump version to 1.2.0.dev 2019-07-14 02:02:14 +02:00
dgelessus 0d2a3f886b Bump version to 1.1.3.post1 and fix a formatting error in README.rst 2019-07-14 01:51:23 +02:00
dgelessus 43a4073432 Bump version to 1.1.3 2019-07-14 01:30:05 +02:00
dgelessus 6247013592 Add a setuptools entry point for the command-line interface 2019-07-14 01:24:28 +02:00
dgelessus 9dfb33f436 Convert setup.py setup(...) options to declarative setup.cfg 2019-07-13 11:35:30 +02:00
dgelessus a9a3168345 Change flag enum definitions to use bit shift instead of literals
Bit shifts are easier to read and less error-prone than typing the
values out by hand.
2018-02-25 17:11:39 +01:00
dgelessus 6b067bd762 Change external links in README.rst from "anonymous" to "inline" style
This way it's much easier to tell which address belongs to which link.
2018-02-16 23:21:22 +01:00
dgelessus e8df959894 Update changelog 2018-02-16 23:08:13 +01:00
dgelessus 2883354ef2 Change level 3 heading underline from ` to ^ in README.rst
This matches the conventions in Python's core documentation:
https://devguide.python.org/documenting/#sections
2018-02-16 23:00:03 +01:00
dgelessus 0b8699c2f1 Do not close user-supplied streams in ResourceFork.close by default
When using ResourceFork.open, the stream is still closed when the
ResourceFile is closed, because the user has no access to the stream.
This matches the behavior of modules like zipfile and tarfile, which
close their underlying streams if they created them themselves, but not
if they were supplied by the user.
2018-02-16 22:47:36 +01:00
dgelessus 2dbf0f7047 Fix ResourceFork.open and __init__ not closing streams in some cases 2018-02-16 22:30:18 +01:00
dgelessus cbc55fcbc2 Refactor rsrcfork.py into a package 2018-02-12 22:48:46 +01:00
dgelessus bc4bad678a Bump version to 1.1.2 2018-02-01 11:06:22 +01:00
dgelessus ee796d0eb1 Support additional resource file attributes
Added the attributes "Resources Locked" and "Printer Driver MultiFinder
Compatible" from ResEdit, as well as more dummy constants (512-16384)
for attributes with no known meaning.
2018-02-01 11:05:25 +01:00
dgelessus 3d802c570f Add python_requires to setup.py 2017-07-14 18:01:38 +02:00
dgelessus f6e424674d Bump version to 1.1.1 2017-07-14 17:56:07 +02:00
dgelessus 5dbec5d905 Make _hexdump behave more like "hexdump -C" 2017-07-14 14:53:55 +02:00
dgelessus c207703c9f Fix overflow with empty resource files or empty resource type entries 2017-07-14 13:50:21 +02:00
dgelessus d6de63e17b Add a command-line interface for reading resources 2016-12-26 23:44:49 +01:00
dgelessus e741fb063f Fix nested bullet list in README.rst 2016-12-24 21:28:17 +01:00
dgelessus 5fc5f26542 Add setup.py 2016-12-24 17:40:56 +01:00
dgelessus 8125744e34 Convert README from Markdown to reStructuredText 2016-12-24 17:37:56 +01:00
dgelessus 386c1b637c Add license 2016-12-24 16:55:12 +01:00
dgelessus e9fdb6bf48 Initial commit 2016-12-24 15:26:49 +01:00