╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮ │ /home/bo/.local/bin/camply:8 in │ │ │ │ 5 from camply.cli import cli │ │ 6 if __name__ == '__main__': │ │ 7 │ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) │ │ ❱ 8 │ sys.exit(cli()) │ │ 9 │ │ │ │ /home/bo/.local/lib/python3.8/site-packages/camply/cli.py:418 in cli │ │ │ │ 415 │ traceback.install(show_locals=False) │ │ 416 │ try: │ │ 417 │ │ logger.camply("camply, the campsite finder ⛺️") # noqa │ │ ❱ 418 │ │ camply_command_line() │ │ 419 │ except KeyboardInterrupt: │ │ 420 │ │ logger.debug("Handling Exit Request") │ │ 421 │ finally: │ │ │ │ /usr/lib/python3/dist-packages/click/core.py:764 in __call__ │ │ │ │ 761 │ │ │ 762 │ def __call__(self, *args, **kwargs): │ │ 763 │ │ """Alias for :meth:`main`.""" │ │ ❱ 764 │ │ return self.main(*args, **kwargs) │ │ 765 │ │ 766 │ │ 767 class Command(BaseCommand): │ │ │ │ /usr/lib/python3/dist-packages/click/core.py:717 in main │ │ │ │ 714 │ │ try: │ │ 715 │ │ │ try: │ │ 716 │ │ │ │ with self.make_context(prog_name, args, **extra) as ctx: │ │ ❱ 717 │ │ │ │ │ rv = self.invoke(ctx) │ │ 718 │ │ │ │ │ if not standalone_mode: │ │ 719 │ │ │ │ │ │ return rv │ │ 720 │ │ │ │ │ # it's not safe to `ctx.exit(rv)` here! │ │ │ │ /usr/lib/python3/dist-packages/click/core.py:1137 in invoke │ │ │ │ 1134 │ │ │ │ Command.invoke(self, ctx) │ │ 1135 │ │ │ │ sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) │ │ 1136 │ │ │ │ with sub_ctx: │ │ ❱ 1137 │ │ │ │ │ return _process_result(sub_ctx.command.invoke(sub_ctx)) │ │ 1138 │ │ │ │ 1139 │ │ # In chain mode we create the contexts step by step, but after the │ │ 1140 │ │ # base command has been invoked. Because at that point we do not │ │ │ │ /usr/lib/python3/dist-packages/click/core.py:956 in invoke │ │ │ │ 953 │ │ """ │ │ 954 │ │ _maybe_show_deprecated_notice(self) │ │ 955 │ │ if self.callback is not None: │ │ ❱ 956 │ │ │ return ctx.invoke(self.callback, **ctx.params) │ │ 957 │ │ 958 │ │ 959 class MultiCommand(Command): │ │ │ │ /usr/lib/python3/dist-packages/click/core.py:555 in invoke │ │ │ │ 552 │ │ args = args[2:] │ │ 553 │ │ with augment_usage_errors(self): │ │ 554 │ │ │ with ctx: │ │ ❱ 555 │ │ │ │ return callback(*args, **kwargs) │ │ 556 │ │ │ 557 │ def forward(*args, **kwargs): │ │ 558 │ │ """Similar to :meth:`invoke` but fills in default keyword │ │ │ │ /home/bo/.local/lib/python3.8/site-packages/camply/cli.py:407 in campsites │ │ │ │ 404 │ │ key.lower(): value for key, value in CAMPSITE_SEARCH_PROVIDER.items() │ │ 405 │ }[provider.lower()] │ │ 406 │ camping_finder = provider_class(**provider_kwargs) │ │ ❱ 407 │ camping_finder.get_matching_campsites(**search_kwargs) │ │ 408 │ │ 409 │ │ 410 def cli(): │ │ │ │ /home/bo/.local/lib/python3.8/site-packages/camply/search/base_search.py:477 in │ │ get_matching_campsites │ │ │ │ 474 │ │ │ │ search_forever=search_forever, │ │ 475 │ │ │ ) │ │ 476 │ │ else: │ │ ❱ 477 │ │ │ matching_campsites = self._search_matching_campsites_available( │ │ 478 │ │ │ │ log=log, verbose=True │ │ 479 │ │ │ ) │ │ 480 │ │ │ self.campsites_found.update(set(matching_campsites)) │ │ │ │ /home/bo/.local/lib/python3.8/site-packages/camply/search/base_search.py:170 in │ │ _search_matching_campsites_available │ │ │ │ 167 │ │ List[AvailableCampsite] │ │ 168 │ │ """ │ │ 169 │ │ matching_campgrounds = list() │ │ ❱ 170 │ │ for camp in self.get_all_campsites(): │ │ 171 │ │ │ if all( │ │ 172 │ │ │ │ [ │ │ 173 │ │ │ │ │ self._compare_date_overlap(campsite=camp) is True, │ │ │ │ /home/bo/.local/lib/python3.8/site-packages/camply/search/search_recreationdotgov.py:229 in │ │ get_all_campsites │ │ │ │ 226 │ │ │ │ availabilities = self.campsite_finder.get_recdotgov_data( │ │ 227 │ │ │ │ │ campground_id=campground.facility_id, month=month │ │ 228 │ │ │ │ ) │ │ ❱ 229 │ │ │ │ campsites = self.campsite_finder.process_campsite_availability( │ │ 230 │ │ │ │ │ availability=availabilities, │ │ 231 │ │ │ │ │ recreation_area=campground.recreation_area, │ │ 232 │ │ │ │ │ recreation_area_id=campground.recreation_area_id, │ │ │ │ /home/bo/.local/lib/python3.8/site-packages/camply/providers/recreation_dot_gov/recdotgov_provid │ │ er.py:739 in process_campsite_availability │ │ │ │ 736 │ │ │ │ │ equipment, attributes = cls._get_equipment_and_attributes( │ │ 737 │ │ │ │ │ │ campsite_id=campsite_id, campsite_metadata=campsite_metadata │ │ 738 │ │ │ │ │ ) │ │ ❱ 739 │ │ │ │ │ available_campsite = AvailableCampsite( │ │ 740 │ │ │ │ │ │ campsite_id=campsite_id, │ │ 741 │ │ │ │ │ │ booking_date=matching_date, │ │ 742 │ │ │ │ │ │ booking_end_date=matching_date + timedelta(days=1), │ │ │ │ /home/bo/Dropbox/pydantic/main.py:341 in pydantic.main.BaseModel.__init__ │ │ │ │ [Errno 2] No such file or directory: '/home/bo/Dropbox/pydantic/main.py' │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ ValidationError: 2 validation errors for AvailableCampsite permitted_equipment value is not a valid list (type=type_error.list) campsite_attributes value is not a valid list (type=type_error.list)