Compare commits
No commits in common. "c4a0b038e88bfd542df85554f25e9dcd515e18bf" and "0a1d9229b414d45c6aaf3ab0477e913386f6b5b2" have entirely different histories.
c4a0b038e8
...
0a1d9229b4
6 changed files with 7 additions and 33 deletions
|
@ -5,14 +5,6 @@ All notable changes to WuttaSync will be documented in this file.
|
|||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## v0.2.1 (2025-06-29)
|
||||
|
||||
### Fix
|
||||
|
||||
- avoid empty keys for importer
|
||||
- do not assign simple/supported fields in Importer constructor
|
||||
- make `--input-path` optional for import/export commands
|
||||
|
||||
## v0.2.0 (2024-12-07)
|
||||
|
||||
### Feat
|
||||
|
|
|
@ -6,7 +6,7 @@ build-backend = "hatchling.build"
|
|||
|
||||
[project]
|
||||
name = "WuttaSync"
|
||||
version = "0.2.1"
|
||||
version = "0.2.0"
|
||||
description = "Wutta Framework for data import/export and real-time sync"
|
||||
readme = "README.md"
|
||||
authors = [{name = "Lance Edgar", email = "lance@wuttaproject.org"}]
|
||||
|
|
|
@ -200,6 +200,8 @@ class Importer:
|
|||
|
||||
self.__dict__.update(kwargs)
|
||||
|
||||
self.simple_fields = self.get_simple_fields()
|
||||
self.supported_fields = self.get_supported_fields()
|
||||
self.fields = self.get_fields()
|
||||
|
||||
# fields could be comma-delimited string from cli param
|
||||
|
|
|
@ -232,7 +232,7 @@ class ImportHandler(GenericHandler):
|
|||
"""
|
||||
Run import/export operations for the specified models.
|
||||
|
||||
:param \\*keys: One or more importer/exporter (model) keys, as
|
||||
:param \*keys: One or more importer/exporter (model) keys, as
|
||||
defined by the handler.
|
||||
|
||||
Each key specified must be present in :attr:`importers` and
|
||||
|
@ -460,9 +460,6 @@ class ImportHandler(GenericHandler):
|
|||
Returns an importer/exporter instance corresponding to the
|
||||
given key.
|
||||
|
||||
Note that this will always create a *new* instance; they are
|
||||
not cached.
|
||||
|
||||
The key will be the "model name" mapped to a particular
|
||||
importer/exporter class and thus must be present in
|
||||
:attr:`importers`.
|
||||
|
@ -475,8 +472,6 @@ class ImportHandler(GenericHandler):
|
|||
|
||||
:param key: Model key for desired importer/exporter.
|
||||
|
||||
:param \\**kwargs: Extra/override kwargs for the importer.
|
||||
|
||||
:returns: Instance of (subclass of)
|
||||
:class:`~wuttasync.importing.base.Importer`.
|
||||
"""
|
||||
|
@ -486,11 +481,6 @@ class ImportHandler(GenericHandler):
|
|||
|
||||
kwargs = self.get_importer_kwargs(key, **kwargs)
|
||||
kwargs['handler'] = self
|
||||
|
||||
# nb. default logic should (normally) determine keys
|
||||
if 'keys' in kwargs and not kwargs['keys']:
|
||||
del kwargs['keys']
|
||||
|
||||
factory = self.importers[key]
|
||||
return factory(self.config, **kwargs)
|
||||
|
||||
|
@ -503,7 +493,7 @@ class ImportHandler(GenericHandler):
|
|||
:param key: Model key for the desired importer/exporter,
|
||||
e.g. ``'Widget'``
|
||||
|
||||
:param \\**kwargs: Any kwargs we have so collected far.
|
||||
:param \**kwargs: Any kwargs we have so collected far.
|
||||
|
||||
:returns: Final kwargs dict for new importer/exporter.
|
||||
"""
|
||||
|
|
|
@ -24,6 +24,8 @@ class TestImporter(DataTestCase):
|
|||
imp = self.make_importer(model_class=model.Setting)
|
||||
|
||||
# fields
|
||||
self.assertEqual(imp.supported_fields, ['name', 'value'])
|
||||
self.assertEqual(imp.simple_fields, ['name', 'value'])
|
||||
self.assertEqual(imp.fields, ['name', 'value'])
|
||||
|
||||
# orientation etc.
|
||||
|
|
|
@ -169,18 +169,6 @@ class TestImportHandler(DataTestCase):
|
|||
importer = handler.get_importer('Setting', model_class=model.Setting)
|
||||
self.assertIsInstance(importer, Importer)
|
||||
|
||||
# specifying empty keys
|
||||
handler.importers['Setting'] = Importer
|
||||
importer = handler.get_importer('Setting', model_class=model.Setting,
|
||||
keys=None)
|
||||
self.assertIsInstance(importer, Importer)
|
||||
importer = handler.get_importer('Setting', model_class=model.Setting,
|
||||
keys='')
|
||||
self.assertIsInstance(importer, Importer)
|
||||
importer = handler.get_importer('Setting', model_class=model.Setting,
|
||||
keys=[])
|
||||
self.assertIsInstance(importer, Importer)
|
||||
|
||||
# key not found
|
||||
self.assertRaises(KeyError, handler.get_importer, 'BunchOfNonsense', model_class=model.Setting)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue