masaccio / numbers-parser

Python module for parsing Apple Numbers .numbers files
MIT License
201 stars 14 forks source link

unpack-numbers fails with no output directory #87

Closed masaccio closed 3 months ago

masaccio commented 3 months ago

To Reproduce

poetry run unpack-numbers --pretty test.numbers
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/jon/Library/Mobile Documents/com~apple~CloudDocs/development/numbers-parser/src/numbers_parser/_unpack_numbers.py", line 164, in main
    iwork.open(Path(document))
  File "/Users/jon/Library/Mobile Documents/com~apple~CloudDocs/development/numbers-parser/src/numbers_parser/iwork.py", line 126, in open
    self._read_objects_from_zipfile(self._zipf)
  File "/Users/jon/Library/Mobile Documents/com~apple~CloudDocs/development/numbers-parser/src/numbers_parser/iwork.py", line 204, in _read_objects_from_zipfile
    self._store_blob(filename, blob)
  File "/Users/jon/Library/Mobile Documents/com~apple~CloudDocs/development/numbers-parser/src/numbers_parser/iwork.py", line 225, in _store_blob
    self._handler.store_file(filename, iwaf)
  File "/Users/jon/Library/Mobile Documents/com~apple~CloudDocs/development/numbers-parser/src/numbers_parser/_unpack_numbers.py", line 39, in store_file
    self.ensure_directory_exists(filename)
  File "/Users/jon/Library/Mobile Documents/com~apple~CloudDocs/development/numbers-parser/src/numbers_parser/_unpack_numbers.py", line 72, in ensure_directory_exists
    os.makedirs(os.path.join(*([self.output_dir, *list(parts[:-1])])))
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen posixpath>", line 76, in join
TypeError: expected str, bytes or os.PathLike object, not NoneType
masaccio commented 3 months ago

Fixed in 4.11.3