MCPcopy Index your code
hub / github.com/matplotlib/matplotlib / _read

Method _read

lib/matplotlib/dviread.py:863–919  ·  view source on GitHub ↗

Read one page from the file. Return True if successful, False if there were no more pages.

(self)

Source from the content-addressed store, hash-verified

861 return self._chars[code]
862
863 def _read(self):
864 """
865 Read one page from the file. Return True if successful,
866 False if there were no more pages.
867 """
868 packet_char = packet_ends = None
869 packet_len = packet_width = None
870 while True:
871 byte = self.file.read(1)[0]
872 # If we are in a packet, execute the dvi instructions
873 if self.state is _dvistate.inpage:
874 byte_at = self.file.tell()-1
875 if byte_at == packet_ends:
876 self._finalize_packet(packet_char, packet_width)
877 packet_len = packet_char = packet_width = None
878 # fall through to out-of-packet code
879 elif byte_at > packet_ends:
880 raise ValueError("Packet length mismatch in vf file")
881 else:
882 if byte in (139, 140) or byte >= 243:
883 raise ValueError(f"Inappropriate opcode {byte} in vf file")
884 Dvi._dtable[byte](self, byte)
885 continue
886
887 # We are outside a packet
888 if byte < 242: # a short packet (length given by byte)
889 packet_len = byte
890 packet_char = self._read_arg(1)
891 packet_width = self._read_arg(3)
892 packet_ends = self._init_packet(byte)
893 self.state = _dvistate.inpage
894 elif byte == 242: # a long packet
895 packet_len = self._read_arg(4)
896 packet_char = self._read_arg(4)
897 packet_width = self._read_arg(4)
898 self._init_packet(packet_len)
899 elif 243 <= byte <= 246:
900 k = self._read_arg(byte - 242, byte == 246)
901 c = self._read_arg(4)
902 s = self._read_arg(4)
903 d = self._read_arg(4)
904 a = self._read_arg(1)
905 l = self._read_arg(1)
906 self._fnt_def_real(k, c, s, d, a, l)
907 if self._first_font is None:
908 self._first_font = k
909 elif byte == 247: # preamble
910 i = self._read_arg(1)
911 k = self._read_arg(1)
912 x = self.file.read(k)
913 cs = self._read_arg(4)
914 ds = self._read_arg(4)
915 self._pre(i, x, cs, ds)
916 elif byte == 248: # postamble (just some number of 248s)
917 break
918 else:
919 raise ValueError(f"Unknown vf opcode {byte}")
920

Callers 1

__init__Method · 0.95

Calls 5

_finalize_packetMethod · 0.95
_init_packetMethod · 0.95
_preMethod · 0.95
_read_argMethod · 0.80
_fnt_def_realMethod · 0.80

Tested by

no test coverage detected