unicodedata-reader 1.3.2__tar.gz → 1.3.3__tar.gz

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.
Files changed (17) hide show
  1. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/PKG-INFO +1 -1
  2. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/pyproject.toml +1 -1
  3. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/entry.py +4 -6
  4. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/reader.py +16 -0
  5. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/set.py +12 -16
  6. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/LICENSE +0 -0
  7. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/README.md +0 -0
  8. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/__init__.py +0 -0
  9. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/__main__.py +0 -0
  10. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/bidi_brackets.py +0 -0
  11. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/cli.py +0 -0
  12. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/compressor.py +0 -0
  13. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/east_asian_width.py +0 -0
  14. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/emoji.py +0 -0
  15. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/general_category.py +0 -0
  16. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/line_break.py +0 -0
  17. {unicodedata_reader-1.3.2 → unicodedata_reader-1.3.3}/unicodedata_reader/vertical_orientation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unicodedata-reader
3
- Version: 1.3.2
3
+ Version: 1.3.3
4
4
  Summary:
5
5
  Home-page: https://github.com/kojiishi/unicodedata-reader
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "unicodedata-reader"
7
- version = "1.3.2"
7
+ version = "1.3.3"
8
8
  description = ""
9
9
  authors = ["Koji Ishii <kojii@chromium.org>"]
10
10
  readme = "README.md"
@@ -10,7 +10,6 @@ from typing import Iterable
10
10
  from typing import List
11
11
  from typing import Optional
12
12
  from typing import Sequence
13
- from typing import Set
14
13
  from typing import Union
15
14
  from typing import Tuple
16
15
 
@@ -273,20 +272,19 @@ class UnicodeDataEntries(object):
273
272
  """Returns an `Iterable` of Unicode code points for the given `pred`."""
274
273
  return itertools.chain(*(e.range() for e in self.filter(pred)))
275
274
 
276
- def add_to_set(self, pred: Callable[[Any], bool], set: Set[int]) -> None:
275
+ def add_to_set(self, pred: Callable[[Any], bool], set: set) -> None:
277
276
  """Add values `pred` returns `True` to `set[int]`."""
278
277
  for code in self.codes_for(pred):
279
278
  set.add(code)
280
279
 
281
- def remove_from_set(self, pred: Callable[[Any], bool],
282
- set: Set[int]) -> None:
280
+ def remove_from_set(self, pred: Callable[[Any], bool], set: set) -> None:
283
281
  """Remove values `pred` returns `True` from `set[int]`."""
284
282
  for code in self.codes_for(pred):
285
283
  set.discard(code)
286
284
 
287
- def to_set(self, pred: Callable[[Any], bool]) -> Set[int]:
285
+ def to_set(self, pred: Callable[[Any], bool]) -> set:
288
286
  """Returns a `set[int]` of values `pred` returns `True`."""
289
- s = set() # type: set[int]
287
+ s = set()
290
288
  self.add_to_set(pred, s)
291
289
  return s
292
290
 
@@ -30,6 +30,22 @@ class UnicodeDataReader(object):
30
30
  ) -> None:
31
31
  self.url_template = url_template
32
32
 
33
+ class Context(object):
34
+ """This class changes `UnicodeDataReader.default` while in the context,
35
+ and restores when exit."""
36
+
37
+ def __init__(self, reader: 'UnicodeDataReader') -> None:
38
+ self.reader = reader
39
+
40
+ def __enter__(self):
41
+ self.saved_default = UnicodeDataReader.default
42
+ UnicodeDataReader.default = self.reader
43
+ return self.reader
44
+
45
+ def __exit__(self, exc_type, exc_val, exc_tb):
46
+ UnicodeDataReader.default = self.saved_default
47
+ return None
48
+
33
49
  def bidi_brackets(self) -> UnicodeDataEntries:
34
50
  name = 'BidiBrackets'
35
51
  lines = self.read_lines(name)
@@ -1,7 +1,7 @@
1
1
  from typing import Any
2
2
  from typing import Callable
3
3
  from typing import Iterable
4
- from typing import Set
4
+ from typing import Optional
5
5
 
6
6
  from unicodedata_reader.entry import *
7
7
  from unicodedata_reader.reader import *
@@ -11,9 +11,9 @@ class Set(object):
11
11
  """A simple wrapper of a `set` of Unicode code points."""
12
12
 
13
13
  def __init__(self,
14
- entries: UnicodeDataEntries = None,
15
- pred: Callable[[Any], bool] = None) -> None:
16
- self.set = set() # type: Set[int]
14
+ entries: Optional[UnicodeDataEntries] = None,
15
+ pred: Optional[Callable[[Any], bool]] = None) -> None:
16
+ self.set = set()
17
17
  if entries:
18
18
  self.add_entries(entries, pred)
19
19
 
@@ -46,25 +46,21 @@ class Set(object):
46
46
  entries.add_to_set(pred, self.set)
47
47
 
48
48
  @staticmethod
49
- def east_asian_width(
50
- value: str,
51
- reader: UnicodeDataReader = UnicodeDataReader.default) -> 'Set':
49
+ def east_asian_width(value: str) -> 'Set':
50
+ reader = UnicodeDataReader.default
52
51
  return Set(reader.east_asian_width(), lambda v: v == value)
53
52
 
54
53
  @staticmethod
55
- def general_category(
56
- value: str,
57
- reader: UnicodeDataReader = UnicodeDataReader.default) -> 'Set':
54
+ def general_category(value: str) -> 'Set':
55
+ reader = UnicodeDataReader.default
58
56
  return Set(reader.general_category(), lambda v: v.startswith(value))
59
57
 
60
58
  @staticmethod
61
- def scripts(
62
- value: str,
63
- reader: UnicodeDataReader = UnicodeDataReader.default) -> 'Set':
59
+ def scripts(value: str) -> 'Set':
60
+ reader = UnicodeDataReader.default
64
61
  return Set(reader.scripts(), lambda v: v == value)
65
62
 
66
63
  @staticmethod
67
- def script_extensions(
68
- value: str,
69
- reader: UnicodeDataReader = UnicodeDataReader.default) -> 'Set':
64
+ def script_extensions(value: str) -> 'Set':
65
+ reader = UnicodeDataReader.default
70
66
  return Set(reader.script_extensions(), lambda v: value in v)