11"""barcode.base
22
33"""
4+ from typing import List
5+ from typing import Optional
6+
7+ from barcode .writer import BaseWriter
48from barcode .writer import SVGWriter
59
610
@@ -23,7 +27,9 @@ class Barcode:
2327 "text" : "" ,
2428 }
2529
26- def to_ascii (self ):
30+ writer : BaseWriter
31+
32+ def to_ascii (self ) -> str :
2733 code = self .build ()
2834 for i , line in enumerate (code ):
2935 code [i ] = line .replace ("1" , "X" ).replace ("0" , " " )
@@ -32,7 +38,7 @@ def to_ascii(self):
3238 def __repr__ (self ):
3339 return f"<{ self .__class__ .__name__ } ({ self .get_fullcode ()!r} )>"
3440
35- def build (self ):
41+ def build (self ) -> List [ str ] :
3642 raise NotImplementedError
3743
3844 def get_fullcode (self ):
@@ -43,20 +49,16 @@ def get_fullcode(self):
4349 """
4450 raise NotImplementedError
4551
46- def save (self , filename , options = None , text = None ):
52+ def save (
53+ self , filename : str , options : Optional [dict ] = None , text : Optional [str ] = None
54+ ) -> str :
4755 """Renders the barcode and saves it in `filename`.
4856
49- :parameters:
50- filename : String
51- Filename to save the barcode in (without filename
52- extension).
53- options : Dict
54- The same as in `self.render`.
55- text : str
56- Text to render under the barcode.
57+ :param filename: Filename to save the barcode in (without filename extension).
58+ :param options: The same as in `self.render`.
59+ :param text: Text to render under the barcode.
5760
5861 :returns: The full filename with extension.
59- :rtype: String
6062 """
6163 output = self .render (options , text ) if text else self .render (options )
6264
@@ -77,14 +79,11 @@ def write(self, fp, options=None, text=None):
7779 output = self .render (options , text )
7880 self .writer .write (output , fp )
7981
80- def render (self , writer_options = None , text = None ):
82+ def render (self , writer_options : Optional [ dict ] = None , text : Optional [ str ] = None ):
8183 """Renders the barcode using `self.writer`.
8284
83- :parameters:
84- writer_options : Dict
85- Options for `self.writer`, see writer docs for details.
86- text : str
87- Text to render under the barcode.
85+ :param writer_options: Options for `self.writer`, see writer docs for details.
86+ :param text: Text to render under the barcode.
8887
8988 :returns: Output of the writers render method.
9089 """
0 commit comments