@@ -13,7 +13,7 @@ class UserAgentMatcher(Matcher[UserAgent]):
1313
1414    """ 
1515
16-     regex : Pattern [str ]
16+     pattern : Pattern [str ]
1717    family : str 
1818    major : Optional [str ]
1919    minor : Optional [str ]
@@ -29,15 +29,15 @@ def __init__(
2929        patch : Optional [str ] =  None ,
3030        patch_minor : Optional [str ] =  None ,
3131    ) ->  None :
32-         self .regex  =  re .compile (regex )
32+         self .pattern  =  re .compile (regex )
3333        self .family  =  family  or  "$1" 
3434        self .major  =  major 
3535        self .minor  =  minor 
3636        self .patch  =  patch 
3737        self .patch_minor  =  patch_minor 
3838
3939    def  __call__ (self , ua : str ) ->  Optional [UserAgent ]:
40-         if  m  :=  self .regex .search (ua ):
40+         if  m  :=  self .pattern .search (ua ):
4141            return  UserAgent (
4242                family = (
4343                    self .family .replace ("$1" , m [1 ])
@@ -52,8 +52,8 @@ def __call__(self, ua: str) -> Optional[UserAgent]:
5252        return  None 
5353
5454    @property  
55-     def  pattern (self ) ->  str :
56-         return  self .regex .pattern 
55+     def  regex (self ) ->  str :
56+         return  self .pattern .pattern 
5757
5858    def  __repr__ (self ) ->  str :
5959        fields  =  [
@@ -65,7 +65,7 @@ def __repr__(self) -> str:
6565        ]
6666        args  =  "" .join (f", { k }  ={ v !r}  "  for  k , v  in  fields  if  v  is  not   None )
6767
68-         return  f"UserAgentMatcher({ self .pattern !r} { args }  )" 
68+         return  f"UserAgentMatcher({ self .regex !r} { args }  )" 
6969
7070
7171class  OSMatcher (Matcher [OS ]):
@@ -74,7 +74,7 @@ class OSMatcher(Matcher[OS]):
7474
7575    """ 
7676
77-     regex : Pattern [str ]
77+     pattern : Pattern [str ]
7878    family : str 
7979    major : str 
8080    minor : str 
@@ -90,15 +90,15 @@ def __init__(
9090        patch : Optional [str ] =  None ,
9191        patch_minor : Optional [str ] =  None ,
9292    ) ->  None :
93-         self .regex  =  re .compile (regex )
93+         self .pattern  =  re .compile (regex )
9494        self .family  =  family  or  "$1" 
9595        self .major  =  major  or  "$2" 
9696        self .minor  =  minor  or  "$3" 
9797        self .patch  =  patch  or  "$4" 
9898        self .patch_minor  =  patch_minor  or  "$5" 
9999
100100    def  __call__ (self , ua : str ) ->  Optional [OS ]:
101-         if  m  :=  self .regex .search (ua ):
101+         if  m  :=  self .pattern .search (ua ):
102102            family  =  replacer (self .family , m )
103103            if  family  is  None :
104104                raise  ValueError (f"Unable to find OS family in { ua }  " )
@@ -112,8 +112,8 @@ def __call__(self, ua: str) -> Optional[OS]:
112112        return  None 
113113
114114    @property  
115-     def  pattern (self ) ->  str :
116-         return  self .regex .pattern 
115+     def  regex (self ) ->  str :
116+         return  self .pattern .pattern 
117117
118118    def  __repr__ (self ) ->  str :
119119        fields  =  [
@@ -125,7 +125,7 @@ def __repr__(self) -> str:
125125        ]
126126        args  =  "" .join (f", { k }  ={ v !r}  "  for  k , v  in  fields  if  v  is  not   None )
127127
128-         return  f"OSMatcher({ self .pattern !r} { args }  )" 
128+         return  f"OSMatcher({ self .regex !r} { args }  )" 
129129
130130
131131class  DeviceMatcher (Matcher [Device ]):
@@ -134,7 +134,7 @@ class DeviceMatcher(Matcher[Device]):
134134
135135    """ 
136136
137-     regex : Pattern [str ]
137+     pattern : Pattern [str ]
138138    family : str 
139139    brand : str 
140140    model : str 
@@ -147,13 +147,15 @@ def __init__(
147147        brand : Optional [str ] =  None ,
148148        model : Optional [str ] =  None ,
149149    ) ->  None :
150-         self .regex  =  re .compile (regex , flags = re .IGNORECASE  if  regex_flag  ==  "i"  else  0 )
150+         self .pattern  =  re .compile (
151+             regex , flags = re .IGNORECASE  if  regex_flag  ==  "i"  else  0 
152+         )
151153        self .family  =  family  or  "$1" 
152154        self .brand  =  brand  or  "" 
153155        self .model  =  model  or  "$1" 
154156
155157    def  __call__ (self , ua : str ) ->  Optional [Device ]:
156-         if  m  :=  self .regex .search (ua ):
158+         if  m  :=  self .pattern .search (ua ):
157159            family  =  replacer (self .family , m )
158160            if  family  is  None :
159161                raise  ValueError (f"Unable to find device family in { ua }  " )
@@ -165,12 +167,16 @@ def __call__(self, ua: str) -> Optional[Device]:
165167        return  None 
166168
167169    @property  
168-     def  pattern (self ) ->  str :
169-         return  self .regex .pattern 
170+     def  regex (self ) ->  str :
171+         return  self .pattern .pattern 
172+ 
173+     @property  
174+     def  regex_flag (self ) ->  str :
175+         return  "i"  if  self .flags  &  re .IGNORECASE  else  "" 
170176
171177    @property  
172178    def  flags (self ) ->  int :
173-         return  self .regex .flags 
179+         return  self .pattern .flags 
174180
175181    def  __repr__ (self ) ->  str :
176182        fields  =  [
@@ -181,4 +187,4 @@ def __repr__(self) -> str:
181187        iflag  =  ', "i"'  if  self .flags  &  re .IGNORECASE  else  "" 
182188        args  =  iflag  +  "" .join (f", { k }  ={ v !r}  "  for  k , v  in  fields  if  v  is  not   None )
183189
184-         return  f"DeviceMatcher({ self .pattern !r} { args }  )" 
190+         return  f"DeviceMatcher({ self .regex !r} { args }  )" 
0 commit comments