hishel 1.1.2__py3-none-any.whl → 1.1.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
hishel/__init__.py CHANGED
@@ -27,7 +27,7 @@ from hishel._core.models import (
27
27
  from hishel._async_cache import AsyncCacheProxy as AsyncCacheProxy
28
28
  from hishel._sync_cache import SyncCacheProxy as SyncCacheProxy
29
29
 
30
- from hishel._policies import SpecificationPolicy, FilterPolicy, CachePolicy
30
+ from hishel._policies import SpecificationPolicy, FilterPolicy, CachePolicy, BaseFilter
31
31
 
32
32
  __all__ = (
33
33
  # New API
@@ -62,6 +62,7 @@ __all__ = (
62
62
  "AsyncCacheProxy",
63
63
  "SyncCacheProxy",
64
64
  # Policies
65
+ "BaseFilter",
65
66
  "CachePolicy",
66
67
  "SpecificationPolicy",
67
68
  "FilterPolicy",
hishel/_async_httpx.py CHANGED
@@ -118,12 +118,24 @@ def _httpx_to_internal(
118
118
  metadata=headers_metadata,
119
119
  )
120
120
  elif isinstance(value, httpx.Response):
121
- if value.is_stream_consumed and "content-encoding" in value.headers:
122
- raise RuntimeError("Can't get the raw stream of a response with `Content-Encoding` header.")
123
121
  stream = (
124
122
  make_async_iterator([value.content]) if value.is_stream_consumed else value.aiter_raw(chunk_size=CHUNK_SIZE)
125
123
  )
126
124
 
125
+ if value.is_stream_consumed and "content-encoding" in value.headers:
126
+ # If the stream was consumed and we don't know about
127
+ # the original data and its size, fix the Content-Length
128
+ # header and remove Content-Encoding so we can recreate it later properly.
129
+ headers = Headers(
130
+ {
131
+ **filter_mapping(
132
+ headers,
133
+ ["content-encoding"],
134
+ ),
135
+ "content-length": str(len(value.content)),
136
+ }
137
+ )
138
+
127
139
  return Response(
128
140
  status_code=value.status_code,
129
141
  headers=headers,
hishel/_core/_spec.py CHANGED
@@ -2410,4 +2410,4 @@ class NeedToBeUpdated(State):
2410
2410
  original_request: Request
2411
2411
 
2412
2412
  def next(self) -> FromCache:
2413
- return FromCache(entry=self.updating_entries[-1], options=self.options)
2413
+ return FromCache(entry=self.updating_entries[-1], options=self.options, after_revalidation=True)
@@ -237,6 +237,11 @@ try:
237
237
  await self._soft_delete_pair(pair, cursor)
238
238
  await connection.commit()
239
239
 
240
+ async def close(self) -> None:
241
+ if self.connection is not None:
242
+ await self.connection.close()
243
+ self.connection = None
244
+
240
245
  async def _is_stream_complete(self, pair_id: uuid.UUID, cursor: anysqlite.Cursor) -> bool:
241
246
  # Check if there's a completion marker (chunk_number = -1) for response stream
242
247
  await cursor.execute(
@@ -237,6 +237,11 @@ try:
237
237
  self._soft_delete_pair(pair, cursor)
238
238
  connection.commit()
239
239
 
240
+ def close(self) -> None:
241
+ if self.connection is not None:
242
+ self.connection.close()
243
+ self.connection = None
244
+
240
245
  def _is_stream_complete(self, pair_id: uuid.UUID, cursor: sqlite3.Cursor) -> bool:
241
246
  # Check if there's a completion marker (chunk_number = -1) for response stream
242
247
  cursor.execute(
hishel/_sync_httpx.py CHANGED
@@ -118,12 +118,24 @@ def _httpx_to_internal(
118
118
  metadata=headers_metadata,
119
119
  )
120
120
  elif isinstance(value, httpx.Response):
121
- if value.is_stream_consumed and "content-encoding" in value.headers:
122
- raise RuntimeError("Can't get the raw stream of a response with `Content-Encoding` header.")
123
121
  stream = (
124
122
  make_sync_iterator([value.content]) if value.is_stream_consumed else value.iter_raw(chunk_size=CHUNK_SIZE)
125
123
  )
126
124
 
125
+ if value.is_stream_consumed and "content-encoding" in value.headers:
126
+ # If the stream was consumed and we don't know about
127
+ # the original data and its size, fix the Content-Length
128
+ # header and remove Content-Encoding so we can recreate it later properly.
129
+ headers = Headers(
130
+ {
131
+ **filter_mapping(
132
+ headers,
133
+ ["content-encoding"],
134
+ ),
135
+ "content-length": str(len(value.content)),
136
+ }
137
+ )
138
+
127
139
  return Response(
128
140
  status_code=value.status_code,
129
141
  headers=headers,
hishel/requests.py CHANGED
@@ -10,7 +10,7 @@ from hishel._core._storages._sync_base import SyncBaseStorage
10
10
  from hishel._core.models import extract_metadata_from_headers
11
11
  from hishel._policies import CachePolicy
12
12
  from hishel._sync_cache import SyncCacheProxy
13
- from hishel._utils import snake_to_header
13
+ from hishel._utils import filter_mapping, snake_to_header
14
14
 
15
15
  try:
16
16
  import requests
@@ -94,12 +94,17 @@ def _requests_to_internal(
94
94
  elif isinstance(model, requests.models.Response):
95
95
  try:
96
96
  stream = model.raw.stream(amt=CHUNK_SIZE, decode_content=None)
97
+ headers = Headers(filter_mapping(model.headers, ["transfer-encoding"]))
97
98
  except requests.exceptions.StreamConsumedError:
98
99
  stream = iter([model.content])
100
+ # If the stream was consumed and we don't know about the original
101
+ # data and its size, fix the Content-Length header and remove
102
+ # Content-Encoding so we can recreate it later properly.
103
+ headers = Headers(filter_mapping(model.headers, ["content-encoding", "transfer-encoding"]))
99
104
 
100
105
  return Response(
101
106
  status_code=model.status_code,
102
- headers=Headers(model.headers),
107
+ headers=headers,
103
108
  stream=stream,
104
109
  )
105
110
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hishel
3
- Version: 1.1.2
3
+ Version: 1.1.4
4
4
  Summary: Elegant HTTP Caching for Python
5
5
  Project-URL: Homepage, https://hishel.com
6
6
  Project-URL: Source, https://github.com/karpetrosyan/hishel
@@ -406,198 +406,231 @@ Hishel is inspired by and builds upon the excellent work in the Python HTTP ecos
406
406
  <strong>Made with ❤️ by <a href="https://github.com/karpetrosyan">Kar Petrosyan</a></strong>
407
407
  </p>
408
408
 
409
+ ## What's Changed in 1.1.4
410
+ ### 🐛 Bug Fixes
411
+
412
+ * don't raise an error on consumed streams that were read into memory by @karpetrosyan
413
+ * close sqlite connections properly by @karpetrosyan
414
+
415
+ ### Contributors
416
+ * @karpetrosyan
417
+
418
+ **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.1.3...1.1.4
419
+
420
+ ## What's Changed in 1.1.3
421
+ ### ⚙️ Miscellaneous Tasks
422
+
423
+ * improve git-cliff docs by @karpetrosyan
424
+ ### 🐛 Bug Fixes
425
+
426
+ * fix: add BaseFilter to __all__ exports by @martinblech in [#408](https://github.com/karpetrosyan/hishel/pull/408)
427
+ * fix: set `after_revalidation=True` for `NeedsToBeUpdated` -> `FromCache` transition by @jlopex in [#402](https://github.com/karpetrosyan/hishel/pull/402)
428
+
429
+ ### Contributors
430
+ * @karpetrosyan
431
+ * @martinblech
432
+ * @jlopex
433
+
434
+ **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.1.2...1.1.3
435
+
409
436
  ## What's Changed in 1.1.2
410
- * fix: respect shared option when excluding unstorable headers by @karpetrosyan
411
- * fix: remove s-maxage consideration for private caches by @karpetrosyan
412
- * fix: respect shared option when excluding unstorable headers by @jlopex in [#401](https://github.com/karpetrosyan/hishel/pull/401)
413
- * fix: remove s-maxage consideration for private caches by @jlopex in [#400](https://github.com/karpetrosyan/hishel/pull/400)
414
- * fix: ensure 304 responses don't leak by @karpetrosyan
437
+ ### 🐛 Bug Fixes
415
438
 
416
- ## New Contributors
417
- * @jlopex made their first contribution in [#401](https://github.com/karpetrosyan/hishel/pull/401)
439
+ * respect shared option when excluding unstorable headers by @karpetrosyan
440
+ * remove s-maxage consideration for private caches by @karpetrosyan
441
+ * ensure 304 responses don't leak by @karpetrosyan
442
+
443
+ ### Contributors
444
+ * @karpetrosyan
445
+ * @jlopex
418
446
 
419
447
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.1.1...1.1.2
420
448
 
421
449
  ## What's Changed in 1.1.1
422
- * Revert "Revert "chore(deps): bump actions/upload-artifact from 4 to 5 "" by @karpetrosyan
423
- * Revert "chore(deps): bump actions/download-artifact from 4 to 6 " by @karpetrosyan
424
- * Revert "chore(deps): bump actions/upload-artifact from 4 to 5 " by @karpetrosyan
425
- * update uv.lock by @karpetrosyan
426
- * Version 1.1.1 by @karpetrosyan
450
+ ### ⚙️ Miscellaneous Tasks
451
+
452
+ * chore(deps-dev): bump the python-packages group with 10 updates by @dependabot[bot] in [#396](https://github.com/karpetrosyan/hishel/pull/396)
453
+ ### 📦 Dependencies
454
+
455
+ * chore(deps): bump astral-sh/setup-uv from 5 to 7 by @dependabot[bot] in [#393](https://github.com/karpetrosyan/hishel/pull/393)
456
+ * chore(deps): bump actions/download-artifact from 4 to 6 by @dependabot[bot] in [#394](https://github.com/karpetrosyan/hishel/pull/394)
457
+ * chore(deps): bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in [#395](https://github.com/karpetrosyan/hishel/pull/395)
458
+
459
+ ### Contributors
460
+ * @karpetrosyan
461
+ * @dependabot[bot]
427
462
 
428
463
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.1.0...1.1.1
429
464
 
430
465
  ## What's Changed in 1.1.0
431
- * Version 1.1.0 by @karpetrosyan
432
- * fix: pass any response with non-expected status code on revalidation to client by @karpetrosyan
433
- * fix: pass any response with non-expected status code on revalidation to client by @karpetrosyan
434
- * feat: allow setting storage base with via `database_path` for sqlite storage by @karpetrosyan
435
- * fix in memory example by @karpetrosyan
436
- * chore: add in memory example by @karpetrosyan
466
+ ### ⚙️ Miscellaneous Tasks
467
+
468
+ * add in memory example by @karpetrosyan
469
+ ### 🐛 Bug Fixes
470
+
471
+ * pass any response with non-expected status code on revalidation to client by @karpetrosyan
472
+ * pass any response with non-expected status code on revalidation to client by @karpetrosyan
473
+ ### 🚀 Features
474
+
475
+ * allow setting storage base with via `database_path` for sqlite storage by @karpetrosyan
476
+
477
+ ### Contributors
478
+ * @karpetrosyan
437
479
 
438
480
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.0.0...1.1.0
439
481
 
440
482
  ## What's Changed in 1.0.0
441
- * Version 1.0.0 by @karpetrosyan
442
- * chore(docs): add examples, improve docs by @karpetrosyan
483
+ ### ⚙️ Miscellaneous Tasks
484
+
485
+ * add examples, improve docs by @karpetrosyan
486
+
487
+ ### Contributors
488
+ * @karpetrosyan
443
489
 
444
490
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.0.0b1...1.0.0
445
491
 
446
492
  ## What's Changed in 1.0.0b1
447
- * Version 1.0.0b1 by @karpetrosyan
448
- * improve docs by @karpetrosyan
449
- * fix: filter out `Transfer-Encoding` header for asgi responses by @karpetrosyan
450
- * fix body sensitive docs by @karpetrosyan
451
- * refactor: add policies by @karpetrosyan
452
- * chore(docs): add graphql docs by @karpetrosyan
453
- * feat: add global `use_body_key` setting by @karpetrosyan
454
- * chore(docs): improve sans-io diagram colors by @karpetrosyan
455
- * fix: body-sensitive responses caching by @karpetrosyan
456
- * mention body sensitive content caching by @karpetrosyan
457
- * clean up roadmap by @karpetrosyan
493
+ ### ♻️ Refactoring
494
+
495
+ * add policies by @karpetrosyan
496
+ ### ⚙️ Miscellaneous Tasks
497
+
498
+ * add graphql docs by @karpetrosyan
499
+ * improve sans-io diagram colors by @karpetrosyan
500
+ ### 🐛 Bug Fixes
501
+
502
+ * filter out `Transfer-Encoding` header for asgi responses by @karpetrosyan
503
+ * body-sensitive responses caching by @karpetrosyan
504
+ ### 🚀 Features
505
+
506
+ * add global `use_body_key` setting by @karpetrosyan
507
+
508
+ ### Contributors
509
+ * @karpetrosyan
458
510
 
459
511
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev3...1.0.0b1
460
512
 
461
513
  ## What's Changed in 1.0.0.dev3
462
- * Version 1.0.0.dev3 by @karpetrosyan
463
- * fix ci by @karpetrosyan
464
- * fix: add date header for proper age calculation by @karpetrosyan
465
- * rename some methods by @karpetrosyan
466
- * refactor: automatically generate httpx sync integration from async by @karpetrosyan
467
- * change pairs to entries in some places by @karpetrosyan
468
- * fix lint format by @karpetrosyan
469
- * refactor: replace pairs with entries, simplify storage API by @karpetrosyan
470
- * better docs by @karpetrosyan
471
- * better custom integrations docs by @karpetrosyan
472
- * more private by @karpetrosyan
473
- * fix lint, make things private by @karpetrosyan
474
- * dont fail if unasync rule was not used by @karpetrosyan
475
- * chore: more robust compressed response caching by @karpetrosyan
476
- * chore(docs): add custom integrations docs by @karpetrosyan
477
- * feat: add logging for asgi by @karpetrosyan
478
- * fix: handle httpx iterable usage instead of iterator correctly by @karpetrosyan
479
- * feat: add blacksheep integration examples by @karpetrosyan
480
- * Change note syntax for ASGI middleware by @karpetrosyan
481
- * fix lint by @karpetrosyan
482
- * feat: add integrations with fastapi and asgi by @karpetrosyan
483
- * fix readme by @karpetrosyan
484
- * add icon for introduction page by @karpetrosyan
485
- * fix test by @karpetrosyan
486
- * properly close resource by @karpetrosyan
487
- * fix: fix compressed data caching for requests by @karpetrosyan
488
- * fix: raise on consumed httpx streams, which we can't store as is (it's already decoded) by @karpetrosyan
489
- * chore(docs): simplify metadata docs by @karpetrosyan
490
- * fix: add missing permissions into `publish.yml` by @karpetrosyan
514
+ ### ♻️ Refactoring
515
+
516
+ * automatically generate httpx sync integration from async by @karpetrosyan
517
+ * replace pairs with entries, simplify storage API by @karpetrosyan
518
+ ### ⚙️ Miscellaneous Tasks
519
+
520
+ * more robust compressed response caching by @karpetrosyan
521
+ * add custom integrations docs by @karpetrosyan
522
+ * simplify metadata docs by @karpetrosyan
523
+ ### 🐛 Bug Fixes
524
+
525
+ * add date header for proper age calculation by @karpetrosyan
526
+ * handle httpx iterable usage instead of iterator correctly by @karpetrosyan
527
+ * fix compressed data caching for requests by @karpetrosyan
528
+ * raise on consumed httpx streams, which we can't store as is (it's already decoded) by @karpetrosyan
529
+ * add missing permissions into `publish.yml` by @karpetrosyan
530
+ ### 🚀 Features
531
+
532
+ * add logging for asgi by @karpetrosyan
533
+ * add blacksheep integration examples by @karpetrosyan
534
+ * add integrations with fastapi and asgi by @karpetrosyan
535
+
536
+ ### Contributors
537
+ * @karpetrosyan
491
538
 
492
539
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev2...1.0.0.dev3
493
540
 
494
541
  ## What's Changed in 1.0.0.dev2
495
- * Version 1.0.0.dev2 by @karpetrosyan
496
- * unasync by @karpetrosyan
497
- * chore: fix time travel date, explicitly specify the timezone by @karpetrosyan
498
- * fix: don't raise an error on 3xx during revalidation by @karpetrosyan
499
- * chore: add import without extras check in ci by @karpetrosyan
500
- * chore(internal): remove redundant utils and tests by @karpetrosyan
501
- * feat: add hishel_created_at response metadata by @karpetrosyan
502
- * fix: fix check for storing auth requests by @karpetrosyan
503
- * better git-cliff by @karpetrosyan
542
+ ### ⚙️ Miscellaneous Tasks
543
+
544
+ * fix time travel date, explicitly specify the timezone by @karpetrosyan
545
+ * add import without extras check in ci by @karpetrosyan
546
+ * remove redundant utils and tests by @karpetrosyan
547
+ ### 🐛 Bug Fixes
548
+
549
+ * don't raise an error on 3xx during revalidation by @karpetrosyan
550
+ * fix check for storing auth requests by @karpetrosyan
551
+ ### 🚀 Features
552
+
553
+ * add hishel_created_at response metadata by @karpetrosyan
554
+
555
+ ### Contributors
556
+ * @karpetrosyan
504
557
 
505
558
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev1...1.0.0.dev2
506
559
 
507
560
  ## What's Changed in 1.0.0.dev1
508
- * Version 1.0.0.dev1 by @karpetrosyan
509
- * fix changelog + uv lock by @karpetrosyan
510
- * fix linting by @karpetrosyan
511
- * chore(internal): remove some redundant utils methods by @karpetrosyan
512
- * fix mike deploy by @karpetrosyan
561
+ ### ⚙️ Miscellaneous Tasks
562
+
563
+ * remove some redundant utils methods by @karpetrosyan
564
+ ### 📦 Dependencies
565
+
566
+ * improve git-cliff by @karpetrosyan
567
+ * install async extra with httpx by @karpetrosyan
568
+ * make `anysqlite` optional dependency by @karpetrosyan
569
+ * make httpx and async libs optional dependencies by @karpetrosyan
570
+
571
+ ### Contributors
572
+ * @karpetrosyan
513
573
 
514
574
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/1.0.0.dev0...1.0.0.dev1
515
575
 
516
576
  ## What's Changed in 1.0.0.dev0
517
- * fix publish.yml by @karpetrosyan
518
- * fix format by @karpetrosyan
519
- * prepare 1.0.0.dev0 release by @karpetrosyan
520
- * improve `CacheOptions` docs by @karpetrosyan
521
- * don't make release version latest by default by @karpetrosyan
522
- * fix changelog by @karpetrosyan
523
- * fix action permissions by @karpetrosyan
524
- * improve docs introduction by @karpetrosyan
525
- * better docs publishing, better project description by @karpetrosyan
526
- * fix docs publishing by @karpetrosyan
527
- * fix docs deploying by @karpetrosyan
528
- * chore(docs): improve docs versioning, deploy dev doc on ci by @karpetrosyan
529
- * fix unasync by @karpetrosyan
530
- * fix unasync by @karpetrosyan
531
- * fix unasync by @karpetrosyan
532
- * Version 1.0.0.dev0 by @karpetrosyan
533
- * chore(docs): use mike powered versioning by @karpetrosyan
534
- * fix changelog by @karpetrosyan
577
+ ### ⚙️ Miscellaneous Tasks
578
+
579
+ * improve docs versioning, deploy dev doc on ci by @karpetrosyan
580
+ * use mike powered versioning by @karpetrosyan
581
+
582
+ ### Contributors
583
+ * @karpetrosyan
535
584
 
536
585
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/0.1.5...1.0.0.dev0
537
586
 
538
587
  ## What's Changed in 0.1.5
539
- * Version 0.1.5 by @karpetrosyan in [#385](https://github.com/karpetrosyan/hishel/pull/385)
540
- * feat(perf): increase requests buffer size to 128KB, disable charset detection by @karpetrosyan
588
+ ### ⚙️ Miscellaneous Tasks
589
+
590
+ * remove some redundant files from repo by @karpetrosyan
591
+ ### 🐛 Bug Fixes
592
+
593
+ * fix some line breaks by @karpetrosyan
594
+ ### 🚀 Features
595
+
596
+ * increase requests buffer size to 128KB, disable charset detection by @karpetrosyan
541
597
  * feat: add close method to storages API by @karpetrosyan in [#384](https://github.com/karpetrosyan/hishel/pull/384)
542
- * fix headers by @karpetrosyan
543
- * fix lint by @karpetrosyan
544
- * ruff format by @karpetrosyan
545
- * feat: better cache-control parsing by @karpetrosyan
546
- * feat(perf): set chunk size to 128KB for httpx to reduce SQLite read/writes by @karpetrosyan
547
- * fix(docs): fix some line breaks by @karpetrosyan
548
- * chore: remove some redundant files from repo by @karpetrosyan
598
+ * better cache-control parsing by @karpetrosyan
599
+ * set chunk size to 128KB for httpx to reduce SQLite read/writes by @karpetrosyan
600
+
601
+ ### Contributors
602
+ * @karpetrosyan
549
603
 
550
604
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/0.1.4...0.1.5
551
605
 
552
606
  ## What's Changed in 0.1.4
553
- * Version 0.1.4 by @karpetrosyan in [#381](https://github.com/karpetrosyan/hishel/pull/381)
554
- * fix lint by @karpetrosyan
555
- * more docs! by @karpetrosyan
556
- * ensure connection is not stored by @karpetrosyan
557
- * fix annotations by @karpetrosyan
558
- * fix typing by @karpetrosyan
559
- * format by @karpetrosyan
560
- * more docs! more tests! by @karpetrosyan
561
- * lot of fixes by @karpetrosyan
562
- * remove redundant files by @karpetrosyan
563
- * remove docs footer by @karpetrosyan
564
- * fix: fix beta imports by @karpetrosyan
565
- * uv lock by @karpetrosyan
566
- * fix: create an sqlite file in a cache folder by @karpetrosyan
567
- * better unasync by @karpetrosyan
568
- * feat: better async implemetation for sqlite storage by @karpetrosyan
569
- * feat: get rid of some locks from sqlite storage by @karpetrosyan
570
- * chore(tests): move some tests to beta by @karpetrosyan
571
- * fix tests by @karpetrosyan
572
- * fix tests by @karpetrosyan
573
- * fix lint by @karpetrosyan
574
- * chore(tests): add sqlite tests for new storage by @karpetrosyan
575
- * feat: add sqlite storage for beta storages by @karpetrosyan
576
- * Adding `.venv` to `.gitignore` by @jamesbraza in [#379](https://github.com/karpetrosyan/hishel/pull/379)
577
- * Revert "add ethical ads" by @karpetrosyan
578
- * add ethical ads by @karpetrosyan
579
- * feat: allow already consumed streams with `CacheTransport` by @jamesbraza in [#377](https://github.com/karpetrosyan/hishel/pull/377)
580
- * chore(ci): fix lint script by @GugNersesyan in [#375](https://github.com/karpetrosyan/hishel/pull/375)
581
- * chore(internal): temporary remove python3.14 from CI by @karpetrosyan
607
+ ### ⚙️ Miscellaneous Tasks
608
+
609
+ * move some tests to beta by @karpetrosyan
610
+ * add sqlite tests for new storage by @karpetrosyan
611
+ * temporary remove python3.14 from CI by @karpetrosyan
582
612
  * chore(internal): remove src folder by @karpetrosyan in [#373](https://github.com/karpetrosyan/hishel/pull/373)
583
- * New storage API by @karpetrosyan in [#359](https://github.com/karpetrosyan/hishel/pull/359)
584
613
  * chore: improve CI by @karpetrosyan in [#369](https://github.com/karpetrosyan/hishel/pull/369)
614
+ ### 🐛 Bug Fixes
615
+
616
+ * fix beta imports by @karpetrosyan
617
+ * create an sqlite file in a cache folder by @karpetrosyan
618
+ ### 🚀 Features
619
+
620
+ * better async implemetation for sqlite storage by @karpetrosyan
621
+ * get rid of some locks from sqlite storage by @karpetrosyan
622
+ * add sqlite storage for beta storages by @karpetrosyan
623
+ * feat: allow already consumed streams with `CacheTransport` by @jamesbraza in [#377](https://github.com/karpetrosyan/hishel/pull/377)
585
624
  * feat: add support for a sans-IO API by @karpetrosyan in [#366](https://github.com/karpetrosyan/hishel/pull/366)
586
- * Enhance documentation with donation link by @karpetrosyan in [#368](https://github.com/karpetrosyan/hishel/pull/368)
587
- * Update README to include donation link by @karpetrosyan in [#367](https://github.com/karpetrosyan/hishel/pull/367)
588
- * Added `Metadata` to public API by @jamesbraza in [#363](https://github.com/karpetrosyan/hishel/pull/363)
589
- * Bump the python-packages group with 10 updates by @dependabot[bot] in [#354](https://github.com/karpetrosyan/hishel/pull/354)
590
- * skip anysqlite, yaml and redis tests if optional deps are missing by @mmdbalkhi in [#348](https://github.com/karpetrosyan/hishel/pull/348)
591
- * Don't bomb if directory creation races by @AstraLuma in [#353](https://github.com/karpetrosyan/hishel/pull/353)
592
- * Cleanup module imports by @deathaxe in [#351](https://github.com/karpetrosyan/hishel/pull/351)
593
-
594
- ## New Contributors
595
- * @jamesbraza made their first contribution in [#379](https://github.com/karpetrosyan/hishel/pull/379)
596
- * @GugNersesyan made their first contribution in [#375](https://github.com/karpetrosyan/hishel/pull/375)
597
- * @mmdbalkhi made their first contribution in [#348](https://github.com/karpetrosyan/hishel/pull/348)
598
- * @AstraLuma made their first contribution in [#353](https://github.com/karpetrosyan/hishel/pull/353)
599
- * @deathaxe made their first contribution in [#351](https://github.com/karpetrosyan/hishel/pull/351)
625
+
626
+ ### Contributors
627
+ * @karpetrosyan
628
+ * @jamesbraza
629
+ * @GugNersesyan
630
+ * @dependabot[bot]
631
+ * @mmdbalkhi
632
+ * @AstraLuma
633
+ * @deathaxe
600
634
 
601
635
  **Full Changelog**: https://github.com/karpetrosyan/hishel/compare/0.1.3...0.1.4
602
636
 
603
- <!-- generated by git-cliff -->
@@ -1,24 +1,24 @@
1
- hishel/__init__.py,sha256=XYnAlT2Wkrg0Cw5u4DLJAsC3TjWDOQJr5kqQMuXxEJI,1796
1
+ hishel/__init__.py,sha256=1EdAEXWx41gmxUzG1Fchd_B4gQDtqlxlqQw0WkCBaUE,1826
2
2
  hishel/_async_cache.py,sha256=4wm6YBL9ClNOg4WbEkALTJVCIXuzQU80MVem2C3hHrQ,8785
3
- hishel/_async_httpx.py,sha256=_-M5BEIyhrPiWJYy-zX0XbAvGFY6NLDdKtfiLt6Io6c,7726
3
+ hishel/_async_httpx.py,sha256=89i92f2SlvgWrav_TDNU1iUzMxdR607apauxXA3pE3U,8127
4
4
  hishel/_policies.py,sha256=1ae_rmDF7oaG91-lQyOGVaTrRX8uI2GImmu5gN6WJa4,1135
5
5
  hishel/_sync_cache.py,sha256=k0AN0M--yR4Jc6SiAreaxPUFiwEt5Dx7wi9jqW9sy50,8510
6
- hishel/_sync_httpx.py,sha256=0wVXeapkFqWtsLq1xtlTpvL-TQ5T6HUyQ7RK4Kz0GMA,7551
6
+ hishel/_sync_httpx.py,sha256=z1pwVUQfRf72Q48PXXZ4FKwXGevll0X5iHcVRANiP38,7952
7
7
  hishel/_utils.py,sha256=kR7RnhFqLzFRmB-YNnZteQVP0iDPUouCscA0_FHHFls,3837
8
8
  hishel/asgi.py,sha256=ocXzqrrYGazeJxlKFcz1waoKvKGOqJ7YBEAmly4Towk,14998
9
9
  hishel/fastapi.py,sha256=CVWCyXTxBPwG_XALo-Oldekv4lqMgH2-W-PPZ9rZjXg,10826
10
10
  hishel/httpx.py,sha256=99a8X9COPiPHSgGW61O2uMWMZB7dY93Ty9DTCJ9C18Q,467
11
11
  hishel/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- hishel/requests.py,sha256=FbOBMvgNSWkH0Bh0qZdr-dhCYG6siR5Lmxcu5eMay3s,6409
12
+ hishel/requests.py,sha256=F3BntFGeesm19NmWFgGoBg-rfkcIs9OTpXDass73t6w,6819
13
13
  hishel/_core/_headers.py,sha256=hGaT6o1F-gs1pm5RpdGb0IMQL3uJYDH1xpwJLy28Cys,17514
14
- hishel/_core/_spec.py,sha256=i4Gf0Z8Zku2qkTdNmKp2mN2gUkVWGVi57GAdqcCkcvI,102963
14
+ hishel/_core/_spec.py,sha256=5VLwyT-eSdbez87A6xJG8T_Z3ySVcEEQp8WyTY_mhCo,102988
15
15
  hishel/_core/models.py,sha256=EabP2qnjYVzhPWhQer3QFmdDE6TDbqEBEqPHzv25VnA,7978
16
16
  hishel/_core/_storages/_async_base.py,sha256=iZ6Mb30P0ho5h4UU5bgOrcsSMZ1427j9tht-tupZs68,2106
17
- hishel/_core/_storages/_async_sqlite.py,sha256=QZEWroGZKGhCMf7CcYpZfKZdKd88R8elQCoPge0Khxc,15674
17
+ hishel/_core/_storages/_async_sqlite.py,sha256=h22qGIQk8ceo9_rKtptEw7LszWCmb3aPwE1_DXOTDXc,15843
18
18
  hishel/_core/_storages/_packing.py,sha256=mC8LMFQ5uPfFOgingKm2WKFO_DwcZ1OjTgI6xc0hfJI,3708
19
19
  hishel/_core/_storages/_sync_base.py,sha256=qfOvcFY5qvrzSh4ztV2Trlxft-BF7An5SFsLlEb8EeE,2075
20
- hishel/_core/_storages/_sync_sqlite.py,sha256=P3vIp636tTtM553-sBTZkam3-sNv0EEkh1rRSd1Qw90,15167
21
- hishel-1.1.2.dist-info/METADATA,sha256=JN9YiWi9__uIBUbq0YIuMNqwbpNqJ1RPwz_fu6Bd1Ok,22965
22
- hishel-1.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
- hishel-1.1.2.dist-info/licenses/LICENSE,sha256=1qQj7pE0V2O9OIedvyOgLGLvZLaPd3nFEup3IBEOZjQ,1493
24
- hishel-1.1.2.dist-info/RECORD,,
20
+ hishel/_core/_storages/_sync_sqlite.py,sha256=ZO_FnK4IH014plPHuhzM7PfZklNAmUhTeOfGFJh9U8c,15324
21
+ hishel-1.1.4.dist-info/METADATA,sha256=Yivm81fEo6fXTN5uHNCMnVX-Mrnfks1hQk-7QTT9Tm4,20188
22
+ hishel-1.1.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
+ hishel-1.1.4.dist-info/licenses/LICENSE,sha256=1qQj7pE0V2O9OIedvyOgLGLvZLaPd3nFEup3IBEOZjQ,1493
24
+ hishel-1.1.4.dist-info/RECORD,,
File without changes