Occasional Errors w/ ReserveCalifornia Lookup #240
Replies: 5 comments 1 reply
-
Do you have a fork of pydantic going locally? Is your username |
Beta Was this translation helpful? Give feedback.
-
Hey now,
/usr/local/lib/python3.10/dist-packages/pydantic-1.10.7.dist-info/ For background, this was a fresh AWS Ubuntu build just for this project. But I did try install with pipx, ran into some issues (don't recall exactly what), tried again with Docker, then reverted to pip. So there could be some fragments of both installs on this machine. I suppose that it could be related to rate limiting. I don't have anything cron'd yet, but since the debug output shows the campsite name/type, I was playing with a script to parse a search to identify just "Premium" sites at at ReserveCalifornia campground. When I come back to the script a couple days later, it runs without issue. So you are probably correct. Once I have it dialed in, I'm only planning to run every 15m or so. |
Beta Was this translation helpful? Give feedback.
-
Don't worry about this :) I've got a new feature coming that will allow you to list campsites, grab all the IDs for premium sites, and filter by them like mentioned in this discussion here #238 (comment). The work is pretty much code-complete, I'll see what I can do to get this merged in the next day or so
I think this is an issue with Python 3.11 wheel availability and pipx. Once I deprecate Python 3.7 this shouldn't be an issue 🤞 #231 Ultimately, I'm not exactly sure what the issue is here. I would expect the server to return a bad response like a 404 here. There is a really easy way to surface the raw JSON response from the server in these |
Beta Was this translation helpful? Give feedback.
-
Copy that. Thanks for the info and constant stream of enhancements. Scored our first reservation the other day using this tool!
-S
From: Justin Flannery ***@***.***>
Sent: Thursday, April 20, 2023 10:30 AM
To: juftin/camply ***@***.***>
Cc: Steffan Vigano (PT) ***@***.***>; Author ***@***.***>
Subject: Re: [juftin/camply] Occasional Errors w/ ReserveCalifornia Lookup (Discussion #240)
NOTICE: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender.
I was playing with a script to parse a search to identify just "Premium" sites at at ReserveCalifornia campground.
Don't worry about this :) I've got a new feature coming that will allow you to list campsites, grab all the IDs for premium sites, and filter by them like mentioned in this discussion here #238 (comment)<#238 (comment)>. The work is pretty much code-complete, I'll see what I can do to get this merged in the next day or so
But I did try install with pipx, ran into some issues (don't recall exactly what), tried again with Docker, then reverted to pip.
I think this is an issue with Python 3.11 wheel availability and pipx. Once I deprecate Python 3.7 this shouldn't be an issue 🤞 #231<#231>
Ultimately, I'm not exactly sure what the issue is here. I would expect the server to return a bad response like a 404 here. There is a really easy way to surface the raw JSON response from the server in these --debug logs, I'll see what I can do to get that done for the next time tis occurs. Keep me posted,
—
Reply to this email directly, view it on GitHub<#240 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABBCA2EI2P75D2UIUBKOMU3XCFXBXANCNFSM6AAAAAAW67YCLY>.
You are receiving this because you authored the thread.Message ID: ***@***.******@***.***>>
|
Beta Was this translation helpful? Give feedback.
-
Hey @steffanvigano check out the latest You can filter on multiple campsites by passing the |
Beta Was this translation helpful? Give feedback.
-
Hello again,
Not sure why, but this query works some of the time, but other times it throws errors.
camply campsites
--provider ReserveCalifornia
--campground 598
--start-date 2023-04-21
--end-date 2023-07-30
--notifications silent
--nights 2
Here's an example of the error with the --debug flag included:
[2023-04-14 22:36:15] CAMPLY camply, the campsite finder ⛺️
[2023-04-14 22:36:15] INFO Using Camply Provider: "ReserveCalifornia"
[2023-04-14 22:36:15] DEBUG Setting up camply debugging
[2023-04-14 22:36:15] DEBUG Camply Version: 0.16.0
[2023-04-14 22:36:15] DEBUG Python Version: 3.10.6
[2023-04-14 22:36:15] DEBUG Platform: linux
[2023-04-14 22:36:15] INFO 100 booking nights selected for search, ranging from 2023-04-21 to 2023-07-29
[2023-04-14 22:36:15] INFO 4 different months selected for search, ranging from 2023-04-21 to 2023-07-29
[2023-04-14 22:36:15] INFO Searching for availabilities with 2 consecutive night stays.
[2023-04-14 22:36:15] INFO Searching for campsites every 10 minutes.
[2023-04-14 22:36:15] INFO Notifications active via:
[2023-04-14 22:36:16] INFO Only enabled. I hope you're watching these logs.
[2023-04-14 22:36:16] INFO Searching across 1 campgrounds
[2023-04-14 22:36:16] INFO ⛰ New Brighton SB (#685) - 🏕 Campground Northern End (sites 44-111) (#598)
[2023-04-14 22:36:16] INFO Searching Campground Northern End (sites 44-111), New Brighton SB (598) for availability: April, 2023
[2023-04-14 22:36:16] DEBUG Starting new HTTPS connection (1): calirdr.usedirect.com:443
[2023-04-14 22:36:16] DEBUG https://calirdr.usedirect.com:443 "POST /rdr/rdr/search/grid HTTP/1.1" 200 None
[2023-04-14 22:36:16] INFO ⛺️ 28 total sites found in month of April
[2023-04-14 22:36:16] INFO Searching Campground Northern End (sites 44-111), New Brighton SB (598) for availability: May, 2023
[2023-04-14 22:36:16] DEBUG https://calirdr.usedirect.com:443 "POST /rdr/rdr/search/grid HTTP/1.1" 200 None
[2023-04-14 22:36:16] CAMPLY Exiting camply 👋
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/ubuntu/.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 │
│ │
│ ╭───────────────────────────────────────── locals ─────────────────────────────────────────╮ │
│ │ annotations = {} │ │
│ │ builtins = <module 'builtins' (built-in)> │ │
│ │ cached = None │ │
│ │ doc = None │ │
│ │ file = '/home/ubuntu/.local/bin/camply' │ │
│ │ loader = <_frozen_importlib_external.SourceFileLoader object at 0x7fe1f1f28c10> │ │
│ │ name = 'main' │ │
│ │ package = None │ │
│ │ spec = None │ │
│ │ cli = <function cli at 0x7fe1ed9c8790> │ │
│ │ re = <module 're' from '/usr/lib/python3.10/re.py'> │ │
│ │ sys = <module 'sys' (built-in)> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/cli.py:750 in cli │
│ │
│ 747 │ Camply Command Line Utility Wrapper │
│ 748 │ """ │
│ 749 │ try: │
│ ❱ 750 │ │ camply_command_line() │
│ 751 │ except KeyboardInterrupt: │
│ 752 │ │ logger.debug("Handling Exit Request") │
│ 753 │ finally: │
│ │
│ /usr/lib/python3/dist-packages/click/core.py:1128 in call │
│ │
│ /usr/local/lib/python3.10/dist-packages/rich_click/rich_group.py:21 in main │
│ │
│ /usr/lib/python3/dist-packages/click/core.py:1053 in main │
│ │
│ /usr/lib/python3/dist-packages/click/core.py:1659 in invoke │
│ │
│ /usr/lib/python3/dist-packages/click/core.py:1395 in invoke │
│ │
│ /usr/lib/python3/dist-packages/click/core.py:754 in invoke │
│ │
│ /usr/lib/python3/dist-packages/click/decorators.py:38 in new_func │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/cli.py:689 in campsites │
│ │
│ 686 │ │ } │
│ 687 │ provider_class = CAMPSITE_SEARCH_PROVIDER[provider] │
│ 688 │ camping_finder = provider_class(**provider_kwargs) │
│ ❱ 689 │ camping_finder.get_matching_campsites(**search_kwargs) │
│ 690 │
│ 691 │
│ 692 @camply_command_line.command(cls=RichCommand) │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ campground = ('598',) │ │
│ │ camping_finder = <camply.search.search_reserve_california.SearchReserveCalifornia │ │
│ │ object at 0x7fe1ed9c53f0> │ │
│ │ campsite = () │ │
│ │ context = CamplyContext(debug=True, provider=None) │ │
│ │ continuous = True │ │
│ │ day = () │ │
│ │ days_of_the_week = set() │ │
│ │ debug = True │ │
│ │ end_date = ('2023-07-30',) │ │
│ │ equipment = () │ │
│ │ equipment_id = None │ │
│ │ nights = 2 │ │
│ │ notifications = ['silent'] │ │
│ │ notify_first_try = False │ │
│ │ offline_search = False │ │
│ │ offline_search_path = None │ │
│ │ polling_interval = 10 │ │
│ │ provider = 'ReserveCalifornia' │ │
│ │ provider_class = <class │ │
│ │ 'camply.search.search_reserve_california.SearchReserveCalifornia'> │ │
│ │ provider_kwargs = { │ │
│ │ │ 'search_window': SearchWindow( │ │
│ │ │ │ start_date=datetime.date(2023, 4, 21), │ │
│ │ │ │ end_date=datetime.date(2023, 7, 30) │ │
│ │ │ ), │ │
│ │ │ 'recreation_area': [], │ │
│ │ │ 'campgrounds': ['598'], │ │
│ │ │ 'campsites': [], │ │
│ │ │ 'weekends_only': False, │ │
│ │ │ 'nights': 2, │ │
│ │ │ 'offline_search': False, │ │
│ │ │ 'offline_search_path': None, │ │
│ │ │ 'equipment': (), │ │
│ │ │ 'equipment_id': None, │ │
│ │ │ ... +1 │ │
│ │ } │ │
│ │ rec_area = () │ │
│ │ search_forever = False │ │
│ │ search_kwargs = { │ │
│ │ │ 'log': True, │ │
│ │ │ 'verbose': True, │ │
│ │ │ 'continuous': True, │ │
│ │ │ 'polling_interval': 10.0, │ │
│ │ │ 'notify_first_try': False, │ │
│ │ │ 'notification_provider': ['silent'], │ │
│ │ │ 'search_forever': False, │ │
│ │ │ 'search_once': False │ │
│ │ } │ │
│ │ search_once = False │ │
│ │ search_windows = SearchWindow( │ │
│ │ │ start_date=datetime.date(2023, 4, 21), │ │
│ │ │ end_date=datetime.date(2023, 7, 30) │ │
│ │ ) │ │
│ │ start_date = ('2023-04-21',) │ │
│ │ weekends = False │ │
│ │ yaml_config = None │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/search/base_search.py:567 in │
│ get_matching_campsites │
│ │
│ 564 │ │ List[AvailableCampsite] │
│ 565 │ │ """ │
│ 566 │ │ if continuous is True or search_once is True: │
│ ❱ 567 │ │ │ self._search_campsites_continuous( │
│ 568 │ │ │ │ log=log, │
│ 569 │ │ │ │ verbose=verbose, │
│ 570 │ │ │ │ polling_interval=polling_interval, │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ continuous = True │ │
│ │ log = True │ │
│ │ notification_provider = ['silent'] │ │
│ │ notify_first_try = False │ │
│ │ polling_interval = 10.0 │ │
│ │ search_forever = False │ │
│ │ search_once = False │ │
│ │ self = <camply.search.search_reserve_california.SearchReserveCalifornia │ │
│ │ object at 0x7fe1ed9c53f0> │ │
│ │ verbose = True │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/search/base_search.py:502 in │
│ _search_campsites_continuous │
│ │
│ 499 │ │ continuous_search_attempts = 1 │
│ 500 │ │ while continuous_search is True: │
│ 501 │ │ │ starting_count = len(self.campsites_found) │
│ ❱ 502 │ │ │ self._continuous_search_retry( │
│ 503 │ │ │ │ log=log, │
│ 504 │ │ │ │ verbose=verbose, │
│ 505 │ │ │ │ polling_interval=polling_interval, │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ continuous_search = True │ │
│ │ continuous_search_attempts = 1 │ │
│ │ log = True │ │
│ │ notification_provider = ['silent'] │ │
│ │ notify_first_try = False │ │
│ │ polling_interval = 10.0 │ │
│ │ polling_interval_minutes = 10 │ │
│ │ search_forever = False │ │
│ │ search_once = False │ │
│ │ self = <camply.search.search_reserve_california.SearchReserveCaliforn… │ │
│ │ object at 0x7fe1ed9c53f0> │ │
│ │ starting_count = 0 │ │
│ │ verbose = True │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/search/base_search.py:348 in │
│ _continuous_search_retry │
│ │
│ 345 │ │ │ retry=tenacity.retry_if_exception_type(CampsiteNotFoundError), │
│ 346 │ │ │ wait=tenacity.wait.wait_fixed(int(polling_interval_minutes) * 60), │
│ 347 │ │ ) │
│ ❱ 348 │ │ matching_campsites = retryer.call( │
│ 349 │ │ │ fn=self._search_matching_campsites_available, │
│ 350 │ │ │ log=False, │
│ 351 │ │ │ verbose=False, │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ continuous_search_attempts = 1 │ │
│ │ log = True │ │
│ │ notification_provider = ['silent'] │ │
│ │ notifier = │ │
│ │ notify_first_try = False │ │
│ │ polling_interval = 10.0 │ │
│ │ polling_interval_minutes = 10 │ │
│ │ retryer = <Retrying object at 0x7fe1eaa7d8d0 │ │
│ │ (stop=<tenacity.stop._stop_never object at 0x7fe1eb49ae60>, │ │
│ │ wait=<tenacity.wait.wait_fixed object at 0x7fe1eaa7d540>, │ │
│ │ sleep=<function sleep at 0x7fe1eb4a5cf0>, │ │
│ │ retry=<tenacity.retry.retry_if_exception_type object at │ │
│ │ 0x7fe1eaa7d990>, before=<function before_nothing at │ │
│ │ 0x7fe1eb4a7ac0>, after=<function after_nothing at │ │
│ │ 0x7fe1eb4b8820>)> │ │
│ │ search_once = False │ │
│ │ self = <camply.search.search_reserve_california.SearchReserveCaliforn… │ │
│ │ object at 0x7fe1ed9c53f0> │ │
│ │ verbose = True │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /usr/local/lib/python3.10/dist-packages/tenacity/init.py:379 in call │
│ │
│ 376 │ │ │
│ 377 │ │ retry_state = RetryCallState(retry_object=self, fn=fn, args=args, kwargs=kwargs) │
│ 378 │ │ while True: │
│ ❱ 379 │ │ │ do = self.iter(retry_state=retry_state) │
│ 380 │ │ │ if isinstance(do, DoAttempt): │
│ 381 │ │ │ │ try: │
│ 382 │ │ │ │ │ result = fn(*args, **kwargs) │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ args = () │ │
│ │ do = <tenacity.DoAttempt object at 0x7fe1eaa7d600> │ │
│ │ fn = <bound method BaseCampingSearch._search_matching_campsites_available of │ │
│ │ <camply.search.search_reserve_california.SearchReserveCalifornia object at │ │
│ │ 0x7fe1ed9c53f0>> │ │
│ │ kwargs = {'log': False, 'verbose': False, 'raise_error': True} │ │
│ │ retry_state = <RetryCallState 140608281237280: attempt #1; slept for 0.0; last result: │ │
│ │ failed (ValidationError 10 validation errors for │ │
│ │ ReserveCaliforniaAvailabilityResponse │ │
│ │ Filters │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ EndDate │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ TimeZone │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ TimeStamp │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ UnitSort │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Name │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Description │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Restrictions │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> SeasonDates │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> TrafficStatuses │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed))> │ │
│ │ self = <Retrying object at 0x7fe1eaa7d8d0 (stop=<tenacity.stop._stop_never object at │ │
│ │ 0x7fe1eb49ae60>, wait=<tenacity.wait.wait_fixed object at 0x7fe1eaa7d540>, │ │
│ │ sleep=<function sleep at 0x7fe1eb4a5cf0>, │ │
│ │ retry=<tenacity.retry.retry_if_exception_type object at 0x7fe1eaa7d990>, │ │
│ │ before=<function before_nothing at 0x7fe1eb4a7ac0>, after=<function │ │
│ │ after_nothing at 0x7fe1eb4b8820>)> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /usr/local/lib/python3.10/dist-packages/tenacity/init.py:314 in iter │
│ │
│ 311 │ │ │
│ 312 │ │ is_explicit_retry = fut.failed and isinstance(fut.exception(), TryAgain) │
│ 313 │ │ if not (is_explicit_retry or self.retry(retry_state)): │
│ ❱ 314 │ │ │ return fut.result() │
│ 315 │ │ │
│ 316 │ │ if self.after is not None: │
│ 317 │ │ │ self.after(retry_state) │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ fut = <Future at 0x7fe1ea5ca6b0 state=finished raised ValidationError> │ │
│ │ is_explicit_retry = False │ │
│ │ retry_state = <RetryCallState 140608281237280: attempt #1; slept for 0.0; last result: │ │
│ │ failed (ValidationError 10 validation errors for │ │
│ │ ReserveCaliforniaAvailabilityResponse │ │
│ │ Filters │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ EndDate │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ TimeZone │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ TimeStamp │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ UnitSort │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Name │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Description │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Restrictions │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> SeasonDates │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> TrafficStatuses │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed))> │ │
│ │ self = <Retrying object at 0x7fe1eaa7d8d0 (stop=<tenacity.stop._stop_never │ │
│ │ object at 0x7fe1eb49ae60>, wait=<tenacity.wait.wait_fixed object at │ │
│ │ 0x7fe1eaa7d540>, sleep=<function sleep at 0x7fe1eb4a5cf0>, │ │
│ │ retry=<tenacity.retry.retry_if_exception_type object at 0x7fe1eaa7d990>, │ │
│ │ before=<function before_nothing at 0x7fe1eb4a7ac0>, after=<function │ │
│ │ after_nothing at 0x7fe1eb4b8820>)> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /usr/lib/python3.10/concurrent/futures/_base.py:451 in result │
│ │
│ 448 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │
│ 449 │ │ │ │ │ raise CancelledError() │
│ 450 │ │ │ │ elif self._state == FINISHED: │
│ ❱ 451 │ │ │ │ │ return self.__get_result() │
│ 452 │ │ │ │ │
│ 453 │ │ │ │ self._condition.wait(timeout) │
│ 454 │
│ │
│ ╭──── locals ────╮ │
│ │ self = None │ │
│ │ timeout = None │ │
│ ╰────────────────╯ │
│ │
│ /usr/lib/python3.10/concurrent/futures/_base.py:403 in __get_result │
│ │
│ 400 │ def __get_result(self): │
│ 401 │ │ if self._exception: │
│ 402 │ │ │ try: │
│ ❱ 403 │ │ │ │ raise self._exception │
│ 404 │ │ │ finally: │
│ 405 │ │ │ │ # Break a reference cycle with the exception in self._exception │
│ 406 │ │ │ │ self = None │
│ │
│ ╭── locals ───╮ │
│ │ self = None │ │
│ ╰─────────────╯ │
│ │
│ /usr/local/lib/python3.10/dist-packages/tenacity/init.py:382 in call │
│ │
│ 379 │ │ │ do = self.iter(retry_state=retry_state) │
│ 380 │ │ │ if isinstance(do, DoAttempt): │
│ 381 │ │ │ │ try: │
│ ❱ 382 │ │ │ │ │ result = fn(*args, **kwargs) │
│ 383 │ │ │ │ except BaseException: # noqa: B902 │
│ 384 │ │ │ │ │ retry_state.set_exception(sys.exc_info()) # type: ignore[arg-type] │
│ 385 │ │ │ │ else: │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ args = () │ │
│ │ do = <tenacity.DoAttempt object at 0x7fe1eaa7d600> │ │
│ │ fn = <bound method BaseCampingSearch._search_matching_campsites_available of │ │
│ │ <camply.search.search_reserve_california.SearchReserveCalifornia object at │ │
│ │ 0x7fe1ed9c53f0>> │ │
│ │ kwargs = {'log': False, 'verbose': False, 'raise_error': True} │ │
│ │ retry_state = <RetryCallState 140608281237280: attempt #1; slept for 0.0; last result: │ │
│ │ failed (ValidationError 10 validation errors for │ │
│ │ ReserveCaliforniaAvailabilityResponse │ │
│ │ Filters │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ EndDate │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ TimeZone │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ TimeStamp │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ UnitSort │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Name │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Description │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> Restrictions │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> SeasonDates │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed) │ │
│ │ Facility -> TrafficStatuses │ │
│ │ none is not an allowed value (type=type_error.none.not_allowed))> │ │
│ │ self = <Retrying object at 0x7fe1eaa7d8d0 (stop=<tenacity.stop._stop_never object at │ │
│ │ 0x7fe1eb49ae60>, wait=<tenacity.wait.wait_fixed object at 0x7fe1eaa7d540>, │ │
│ │ sleep=<function sleep at 0x7fe1eb4a5cf0>, │ │
│ │ retry=<tenacity.retry.retry_if_exception_type object at 0x7fe1eaa7d990>, │ │
│ │ before=<function before_nothing at 0x7fe1eb4a7ac0>, after=<function │ │
│ │ after_nothing at 0x7fe1eb4b8820>)> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/search/base_search.py:240 in │
│ _search_matching_campsites_available │
│ │
│ 237 │ │ List[AvailableCampsite] │
│ 238 │ │ """ │
│ 239 │ │ matching_campgrounds = [] │
│ ❱ 240 │ │ for camp in self.get_all_campsites(): │
│ 241 │ │ │ if all( │
│ 242 │ │ │ │ [ │
│ 243 │ │ │ │ │ self._compare_date_overlap(campsite=camp) is True, │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ log = False │ │
│ │ matching_campgrounds = [] │ │
│ │ raise_error = True │ │
│ │ self = <camply.search.search_reserve_california.SearchReserveCalifornia │ │
│ │ object at 0x7fe1ed9c53f0> │ │
│ │ verbose = False │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/search/search_reserve_california.py:112 │
│ in get_all_campsites │
│ │
│ 109 │ │ │ │ │ f"{month.strftime('%B, %Y')}" │
│ 110 │ │ │ │ ) │
│ 111 │ │ │ │ end_date = month + relativedelta(months=1) - timedelta(days=1) │
│ ❱ 112 │ │ │ │ campsites = self.campsite_finder.get_campsites( │
│ 113 │ │ │ │ │ campground_id=campground.facility_id, │
│ 114 │ │ │ │ │ start_date=month, │
│ 115 │ │ │ │ │ end_date=end_date, │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ campground = CampgroundFacility( │ │
│ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ recreation_area='New Brighton SB', │ │
│ │ │ facility_id=598, │ │
│ │ │ recreation_area_id=685, │ │
│ │ │ map_id=None, │ │
│ │ │ coordinates=None │ │
│ │ ) │ │
│ │ campsites = [ │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43439, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 16, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Hook Up (E/W) Campsite #46', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Hook Up Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Hook Up (E/W)', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43441, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 16, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Hook Up (E/W) Campsite #48', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Hook Up Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Hook Up (E/W)', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43449, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 23, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 24, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Hook Up (E/W) Campsite #56', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Hook Up Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Hook Up (E/W)', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43455, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 20, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 21, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #63', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43455, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 23, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 24, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #63', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43456, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 25, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 26, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #64', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43499, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 16, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #65', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43499, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 18, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #65', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43499, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 18, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 19, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #65', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43501, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 27, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 28, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Tent Campsite #67', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Tent Site', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ ... +18 │ │
│ │ ] │ │
│ │ campsites_found = [ │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43439, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 16, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Hook Up (E/W) Campsite #46', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Hook Up Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Hook Up (E/W)', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43441, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 16, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Hook Up (E/W) Campsite #48', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Hook Up Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Hook Up (E/W)', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43449, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 23, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 24, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Hook Up (E/W) Campsite #56', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Hook Up Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Hook Up (E/W)', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43455, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 20, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 21, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #63', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43455, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 23, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 24, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #63', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43456, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 25, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 26, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #64', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43499, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 16, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #65', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43499, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 17, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 18, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #65', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43499, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 18, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 19, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Campsite #65', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Campsite', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ AvailableCampsite( │ │
│ │ │ │ campsite_id=43501, │ │
│ │ │ │ booking_date=datetime.datetime(2023, 4, 27, 0, 0), │ │
│ │ │ │ booking_end_date=datetime.datetime(2023, 4, 28, 0, 0), │ │
│ │ │ │ booking_nights=1, │ │
│ │ │ │ campsite_site_name='Tent Campsite #67', │ │
│ │ │ │ campsite_loop_name=None, │ │
│ │ │ │ campsite_type='Camping', │ │
│ │ │ │ campsite_occupancy=(0, 1), │ │
│ │ │ │ campsite_use_type='Tent Site', │ │
│ │ │ │ availability_status='Available', │ │
│ │ │ │ recreation_area='New Brighton SB', │ │
│ │ │ │ recreation_area_id=685, │ │
│ │ │ │ facility_name='Campground Northern End (sites 44-111)', │ │
│ │ │ │ facility_id=598, │ │
│ │ │ │ │ │
│ │ booking_url='https://www.reservecalifornia.com/Web/Default.aspx#!park/685… │ │
│ │ │ │ permitted_equipment=None, │ │
│ │ │ │ campsite_attributes=None │ │
│ │ │ ), │ │
│ │ │ ... +18 │ │
│ │ ] │ │
│ │ end_date = datetime.date(2023, 5, 31) │ │
│ │ kwargs = {} │ │
│ │ log_str = '⛰ New Brighton SB (#685) - 🏕 Campground Northern End (sites 44-111) │ │
│ │ (#598)' │ │
│ │ month = datetime.date(2023, 5, 1) │ │
│ │ self = <camply.search.search_reserve_california.SearchReserveCalifornia object at │ │
│ │ 0x7fe1ed9c53f0> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /usr/local/lib/python3.10/dist-packages/ratelimit/decorators.py:113 in wrapper │
│ │
│ 110 │ │ ''' │
│ 111 │ │ while True: │
│ 112 │ │ │ try: │
│ ❱ 113 │ │ │ │ return func(*args, **kargs) │
│ 114 │ │ │ except RateLimitException as exception: │
│ 115 │ │ │ │ time.sleep(exception.period_remaining) │
│ 116 │ return wrapper │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ args = ( │ │
│ │ │ <camply.providers.reserve_california.reserve_california.ReserveCalifornia object │ │
│ │ at 0x7fe1ed9c5720>, │ │
│ │ ) │ │
│ │ func = <function ReserveCalifornia.get_campsites at 0x7fe1eb25dc60> │ │
│ │ kargs = { │ │
│ │ │ 'campground_id': 598, │ │
│ │ │ 'start_date': datetime.date(2023, 5, 1), │ │
│ │ │ 'end_date': datetime.date(2023, 5, 31) │ │
│ │ } │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /usr/local/lib/python3.10/dist-packages/ratelimit/decorators.py:80 in wrapper │
│ │
│ 77 │ │ │ │ │ │ raise RateLimitException('too many calls', period_remaining) │
│ 78 │ │ │ │ │ return │
│ 79 │ │ │ │
│ ❱ 80 │ │ │ return func(*args, **kargs) │
│ 81 │ │ return wrapper │
│ 82 │ │
│ 83 │ def __period_remaining(self): │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ args = ( │ │
│ │ │ │ │
│ │ <camply.providers.reserve_california.reserve_california.ReserveCalifornia │ │
│ │ object at 0x7fe1ed9c5720>, │ │
│ │ ) │ │
│ │ func = <function ReserveCalifornia.get_campsites at 0x7fe1eb25dbd0> │ │
│ │ kargs = { │ │
│ │ │ 'campground_id': 598, │ │
│ │ │ 'start_date': datetime.date(2023, 5, 1), │ │
│ │ │ 'end_date': datetime.date(2023, 5, 31) │ │
│ │ } │ │
│ │ period_remaining = -0.0004050610587000847 │ │
│ │ self = <ratelimit.decorators.RateLimitDecorator object at 0x7fe1eb252800> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/.local/lib/python3.10/site-packages/camply/providers/reserve_california/reserve_cal │
│ ifornia.py:275 in get_campsites │
│ │
│ 272 │ │ │ url=url, data=json.dumps(non_null_data), headers=self.json_headers │
│ 273 │ │ ) │
│ 274 │ │ response.raise_for_status() │
│ ❱ 275 │ │ availability_response = ReserveCaliforniaAvailabilityResponse(**response.json()) │
│ 276 │ │ campsites: List[AvailableCampsite] = [] │
│ 277 │ │ if availability_response.Facility.Units is None: │
│ 278 │ │ │ return campsites │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ campground_id = 598 │ │
│ │ data = { │ │
│ │ │ 'IsADA': None, │ │
│ │ │ 'MinVehicleLength': None, │ │
│ │ │ 'UnitCategoryId': None, │ │
│ │ │ 'StartDate': '05-01-2023', │ │
│ │ │ 'WebOnly': True, │ │
│ │ │ 'UnitTypesGroupIds': [], │ │
│ │ │ 'SleepingUnitId': None, │ │
│ │ │ 'EndDate': '05-31-2023', │ │
│ │ │ 'UnitSort': 'orderby', │ │
│ │ │ 'InSeasonOnly': True, │ │
│ │ │ ... +1 │ │
│ │ } │ │
│ │ end_date = datetime.date(2023, 5, 31) │ │
│ │ in_season_only = True │ │
│ │ is_ada = None │ │
│ │ min_vehicle_length = None │ │
│ │ non_null_data = { │ │
│ │ │ 'StartDate': '05-01-2023', │ │
│ │ │ 'WebOnly': True, │ │
│ │ │ 'EndDate': '05-31-2023', │ │
│ │ │ 'UnitSort': 'orderby', │ │
│ │ │ 'InSeasonOnly': True, │ │
│ │ │ 'FacilityId': 598 │ │
│ │ } │ │
│ │ response = <Response [200]> │ │
│ │ self = <camply.providers.reserve_california.reserve_california.ReserveCalifo… │ │
│ │ object at 0x7fe1ed9c5720> │ │
│ │ sleeping_unit_id = None │ │
│ │ start_date = datetime.date(2023, 5, 1) │ │
│ │ unit_category_id = None │ │
│ │ unit_sort = 'orderby' │ │
│ │ unit_type_group_ids = None │ │
│ │ url = 'https://calirdr.usedirect.com/rdr/rdr/search/grid' │ │
│ │ web_only = True │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/ubuntu/pydantic/main.py:341 in pydantic.main.BaseModel.init │
│ │
│ [Errno 2] No such file or directory: '/home/ubuntu/pydantic/main.py' │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ValidationError: 10 validation errors for ReserveCaliforniaAvailabilityResponse
Filters
none is not an allowed value (type=type_error.none.not_allowed)
EndDate
none is not an allowed value (type=type_error.none.not_allowed)
TimeZone
none is not an allowed value (type=type_error.none.not_allowed)
TimeStamp
none is not an allowed value (type=type_error.none.not_allowed)
UnitSort
none is not an allowed value (type=type_error.none.not_allowed)
Facility -> Name
none is not an allowed value (type=type_error.none.not_allowed)
Facility -> Description
none is not an allowed value (type=type_error.none.not_allowed)
Facility -> Restrictions
none is not an allowed value (type=type_error.none.not_allowed)
Facility -> SeasonDates
none is not an allowed value (type=type_error.none.not_allowed)
Facility -> TrafficStatuses
none is not an allowed value (type=type_error.none.not_allowed)
Some details on the OS build:
ubuntu@myhost:
$ uname -a22.04.1-Ubuntu SMP Fri Mar 17 15:38:24 UTC 2023 x86_64 x86_64 x86_64 GNU/LinuxLinux ip-172-31-28-131 5.19.0-1022-aws #23
ubuntu@myhost:~$ python3 -V
Python 3.10.6
Beta Was this translation helpful? Give feedback.
All reactions