Python fileinput.filename() Examples
The following are 30
code examples of fileinput.filename().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
fileinput
, or try the search function
.
Example #1
Source File: bashate.py From bashate with Apache License 2.0 | 6 votes |
def print_error(self, error, line='', filename=None, filelineno=None): if self.should_ignore(error): return warn = self.should_warn(error) if not filename: filename = fileinput.filename() if not filelineno: filelineno = fileinput.filelineno() if warn: self.warning_count = self.warning_count + 1 else: self.error_count = self.error_count + 1 self.log_error(error, line, filename, filelineno, warn)
Example #2
Source File: batch.py From contrail-api-cli with MIT License | 6 votes |
def __call__(self, files=None): manager = CommandManager() try: for line in fileinput.input(files=files): if line[0] == '#': continue action = shlex.split(line.rstrip()) if len(action) < 1: continue cmd = manager.get(action[0]) args = action[1:] result = cmd.parse_and_call(*args) if result: printo(result) except IOError: raise CommandError("Cannot read from file: {}".format(fileinput.filename())) except CommandNotFound: raise CommandError("Command {} not found".format(action[0])) finally: fileinput.close()
Example #3
Source File: test_fileinput.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_zero_byte_files(self): t1 = t2 = t3 = t4 = None try: t1 = writeTmp(1, [""]) t2 = writeTmp(2, [""]) t3 = writeTmp(3, ["The only line there is.\n"]) t4 = writeTmp(4, [""]) fi = FileInput(files=(t1, t2, t3, t4)) line = fi.readline() self.assertEqual(line, 'The only line there is.\n') self.assertEqual(fi.lineno(), 1) self.assertEqual(fi.filelineno(), 1) self.assertEqual(fi.filename(), t3) line = fi.readline() self.assertFalse(line) self.assertEqual(fi.lineno(), 1) self.assertEqual(fi.filelineno(), 0) self.assertEqual(fi.filename(), t4) fi.close() finally: remove_tempfiles(t1, t2, t3, t4)
Example #4
Source File: test_package.py From xmlschema with MIT License | 6 votes |
def test_version(self): message = "\nFound a different version at line %d or file %r: %r (may be %r)." files = [os.path.join(self.source_dir, '__init__.py')] if self.package_dir is not None: files.extend([ os.path.join(self.package_dir, 'setup.py'), os.path.join(self.package_dir, 'doc/conf.py'), ]) version = filename = None for line in fileinput.input(files): if fileinput.isfirstline(): filename = fileinput.filename() lineno = fileinput.filelineno() match = self.get_version.search(line) if match is not None: if version is None: version = match.group(1).strip('\'\"') else: self.assertTrue( version == match.group(1).strip('\'\"'), message % (lineno, filename, match.group(1).strip('\'\"'), version) )
Example #5
Source File: test_fileinput.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test(self): encoding = object() result = fileinput.hook_encoded(encoding) fake_open = InvocationRecorder() original_open = builtins.open builtins.open = fake_open try: filename = object() mode = object() open_result = result(filename, mode) finally: builtins.open = original_open self.assertEqual(fake_open.invocation_count, 1) args, kwargs = fake_open.last_invocation self.assertIs(args[0], filename) self.assertIs(args[1], mode) self.assertIs(kwargs.pop('encoding'), encoding) self.assertFalse(kwargs)
Example #6
Source File: test_fileinput.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_zero_byte_files(self): t1 = t2 = t3 = t4 = None try: t1 = writeTmp(1, [""]) t2 = writeTmp(2, [""]) t3 = writeTmp(3, ["The only line there is.\n"]) t4 = writeTmp(4, [""]) fi = FileInput(files=(t1, t2, t3, t4)) line = fi.readline() self.assertEqual(line, 'The only line there is.\n') self.assertEqual(fi.lineno(), 1) self.assertEqual(fi.filelineno(), 1) self.assertEqual(fi.filename(), t3) line = fi.readline() self.assertFalse(line) self.assertEqual(fi.lineno(), 1) self.assertEqual(fi.filelineno(), 0) self.assertEqual(fi.filename(), t4) fi.close() finally: remove_tempfiles(t1, t2, t3, t4)
Example #7
Source File: more.py From stash with MIT License | 6 votes |
def more(filenames, pagesize=10, clear=False, fmt='{line}'): '''Display content of filenames pagesize lines at a time (cleared if specified) with format fmt for each output line''' fileinput.close() # in case still open try: pageno = 1 if clear: clear_screen() for line in fileinput.input(filenames, openhook=fileinput.hook_encoded("utf-8")): lineno, filename, filelineno = fileinput.lineno(), fileinput.filename(), fileinput.filelineno() print(fmt.format(**locals()), end='') if pagesize and lineno % pagesize == 0: console.alert('Abort or continue', filename, 'Next page') # TODO: use less intrusive mechanism than alert pageno += 1 if clear: clear_screen() finally: fileinput.close() # --- main
Example #8
Source File: more.py From stash with MIT License | 6 votes |
def main(args): parser = argparse.ArgumentParser( description=__doc__, epilog='This is inefficient for long input, as StaSh pipes do not multitask' ) parser.add_argument('file', help='files to display ("-" is stdin is default)', action='store', nargs='*') parser.add_argument('-p', '--pageno', help='number screen pages cumulatively', action='store_true') parser.add_argument('-l', '--lineno', help='number lines cumulatively', action='store_true') parser.add_argument('-f', '--filename', help='label lines by filename', action='store_true') parser.add_argument('-n', '--filelineno', '-#', help='number lines per file', action='store_true') parser.add_argument( '-s', '--pagesize', help='number of lines per screen page (0 for no pagination)', action='store', type=int, default=40 ) # TODO: use actual number of lines on screen for dynamic screen page size parser.add_argument('-c', '--clear', help='clear terminal screen before each screen page', action='store_true') ns = parser.parse_args(args) ns.line = True fmt = ' '.join('{' + var + '}' for var in 'pageno lineno filename filelineno line'.split() if getattr(ns, var)) more(ns.file, ns.pagesize, ns.clear, fmt)
Example #9
Source File: libcore.py From stash with MIT License | 6 votes |
def input_stream(files=()): """ Handles input files similar to fileinput. The advantage of this function is it recovers from errors if one file is invalid and proceed with the next file """ fileinput.close() try: if not files: for line in fileinput.input(files): yield line, '', fileinput.filelineno() else: while files: thefile = files.pop(0) try: for line in fileinput.input(thefile): yield line, fileinput.filename(), fileinput.filelineno() except IOError as e: yield None, fileinput.filename(), e finally: fileinput.close()
Example #10
Source File: test_fileinput.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_zero_byte_files(self): t1 = t2 = t3 = t4 = None try: t1 = writeTmp(1, [""]) t2 = writeTmp(2, [""]) t3 = writeTmp(3, ["The only line there is.\n"]) t4 = writeTmp(4, [""]) fi = FileInput(files=(t1, t2, t3, t4)) line = fi.readline() self.assertEqual(line, 'The only line there is.\n') self.assertEqual(fi.lineno(), 1) self.assertEqual(fi.filelineno(), 1) self.assertEqual(fi.filename(), t3) line = fi.readline() self.assertFalse(line) self.assertEqual(fi.lineno(), 1) self.assertEqual(fi.filelineno(), 0) self.assertEqual(fi.filename(), t4) fi.close() finally: remove_tempfiles(t1, t2, t3, t4)
Example #11
Source File: test_fileinput.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_state_is_None(self): """Tests fileinput.filename() when fileinput._state is None. Ensure that it raises RuntimeError with a meaningful error message and does not modify fileinput._state""" fileinput._state = None with self.assertRaises(RuntimeError) as cm: fileinput.filename() self.assertEqual(("no active input()",), cm.exception.args) self.assertIsNone(fileinput._state)
Example #12
Source File: bashate.py From bashate with Apache License 2.0 | 5 votes |
def log_error(self, error, line, filename, filelineno, warn=False): # following pycodestyle/pep8 default output format # https://github.com/PyCQA/pycodestyle/blob/master/pycodestyle.py#L108 print("%(filename)s:%(filelineno)s:1: %(error)s" % {'filename': filename, 'filelineno': filelineno, 'warn': "W" if warn else "E", 'error': error.replace(":", "", 1), 'line': line.rstrip('\n')})
Example #13
Source File: test_fileinput.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def openhook(self, filename, mode): self.it = iter(filename.splitlines(True)) return self
Example #14
Source File: test_fileinput.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def filename(self): self.invocation_counts["filename"] += 1 return self.return_values["filename"]
Example #15
Source File: test_fileinput.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_state_is_not_None(self): """Tests fileinput.filename() when fileinput._state is not None. Ensure that it invokes fileinput._state.filename() exactly once, returns whatever it returns, and does not modify fileinput._state to point to a different object.""" filename_retval = object() instance = MockFileInput() instance.return_values["filename"] = filename_retval fileinput._state = instance retval = fileinput.filename() self.assertExactlyOneInvocation(instance, "filename") self.assertIs(retval, filename_retval) self.assertIs(fileinput._state, instance)
Example #16
Source File: test_fileinput.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_state_is_not_None(self): """Tests fileinput.filename() when fileinput._state is not None. Ensure that it invokes fileinput._state.filename() exactly once, returns whatever it returns, and does not modify fileinput._state to point to a different object.""" filename_retval = object() instance = MockFileInput() instance.return_values["filename"] = filename_retval fileinput._state = instance retval = fileinput.filename() self.assertExactlyOneInvocation(instance, "filename") self.assertIs(retval, filename_retval) self.assertIs(fileinput._state, instance)
Example #17
Source File: test_package.py From xmlschema with MIT License | 5 votes |
def test_missing_debug_statements(self): # Exclude explicit debug statements written in the code exclude = { 'regex.py': [240, 241], 'codepoints.py': [534], 'cli.py': [117, 133, 137, 140], } message = "\nFound a debug missing statement at line %d or file %r: %r" filename = None file_excluded = [] files = glob.glob(os.path.join(self.source_dir, '*.py')) + \ glob.glob(os.path.join(self.source_dir, 'validators/*.py')) for line in fileinput.input(files): if fileinput.isfirstline(): filename = fileinput.filename() file_excluded = exclude.get(os.path.basename(filename), []) lineno = fileinput.filelineno() if lineno in file_excluded: continue match = self.missing_debug.search(line) if match is None or filename.endswith('/cli.py') and match.group(0) == 'print(': continue self.assertIsNone(match, message % (lineno, filename, match.group(0)))
Example #18
Source File: test_package.py From xmlschema with MIT License | 5 votes |
def test_json_unicode_categories(self): filename = os.path.join(self.source_dir, 'unicode_categories.json') self.assertTrue(os.path.isfile(filename), msg="file %r is missing!" % filename) with open(filename, 'r') as fp: self.assertIsInstance(json.load(fp), dict, msg="file %r is not encoded in JSON format!" % filename)
Example #19
Source File: test_package.py From xmlschema with MIT License | 5 votes |
def test_base_schema_files(self): et = importlib.import_module('xml.etree.ElementTree') schemas_dir = os.path.join(self.source_dir, 'validators/schemas') base_schemas = [ 'XSD_1.0/XMLSchema.xsd', 'XSD_1.1/XMLSchema.xsd', 'xhtml1-strict.xsd', 'xlink.xsd', 'xml_minimal.xsd', 'XMLSchema-hasFacetAndProperty_minimal.xsd', 'XMLSchema-instance_minimal.xsd' ] for rel_path in base_schemas: filename = os.path.join(schemas_dir, rel_path) self.assertTrue(os.path.isfile(filename), msg="schema file %r is missing!" % filename) self.assertIsInstance(et.parse(filename), et.ElementTree)
Example #20
Source File: bashate.py From bashate with Apache License 2.0 | 5 votes |
def check_hashbang(line, filename, report): # this check only runs on the first line # maybe this should check for shell? if (not filename.endswith(".sh") and not line.startswith("#!") and not os.path.basename(filename).startswith('.')): report.print_error(MESSAGES['E005'].msg, line)
Example #21
Source File: test_fileinput.py From ironpython3 with Apache License 2.0 | 5 votes |
def do_test_use_builtin_open(self, filename, mode): original_open = self.replace_builtin_open(self.fake_open) try: result = fileinput.hook_compressed(filename, mode) finally: self.replace_builtin_open(original_open) self.assertEqual(self.fake_open.invocation_count, 1) self.assertEqual(self.fake_open.last_invocation, ((filename, mode), {}))
Example #22
Source File: base.py From dyc with MIT License | 5 votes |
def __init__(self, filename, config, placeholders=False): self.filename = filename self.config = config self.placeholders = placeholders
Example #23
Source File: test_fileinput.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_state_is_None(self): """Tests fileinput.filename() when fileinput._state is None. Ensure that it raises RuntimeError with a meaningful error message and does not modify fileinput._state""" fileinput._state = None with self.assertRaises(RuntimeError) as cm: fileinput.filename() self.assertEqual(("no active input()",), cm.exception.args) self.assertIsNone(fileinput._state)
Example #24
Source File: test_fileinput.py From ironpython3 with Apache License 2.0 | 5 votes |
def filename(self): self.invocation_counts["filename"] += 1 return self.return_values["filename"]
Example #25
Source File: test_fileinput.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def do_test_use_builtin_open(self, filename, mode): original_open = self.replace_builtin_open(self.fake_open) try: result = fileinput.hook_compressed(filename, mode) finally: self.replace_builtin_open(original_open) self.assertEqual(self.fake_open.invocation_count, 1) self.assertEqual(self.fake_open.last_invocation, ((filename, mode), {}))
Example #26
Source File: test_fileinput.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_state_is_not_None(self): """Tests fileinput.filename() when fileinput._state is not None. Ensure that it invokes fileinput._state.filename() exactly once, returns whatever it returns, and does not modify fileinput._state to point to a different object.""" filename_retval = object() instance = MockFileInput() instance.return_values["filename"] = filename_retval fileinput._state = instance retval = fileinput.filename() self.assertExactlyOneInvocation(instance, "filename") self.assertIs(retval, filename_retval) self.assertIs(fileinput._state, instance)
Example #27
Source File: test_fileinput.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_state_is_None(self): """Tests fileinput.filename() when fileinput._state is None. Ensure that it raises RuntimeError with a meaningful error message and does not modify fileinput._state""" fileinput._state = None with self.assertRaises(RuntimeError) as cm: fileinput.filename() self.assertEqual(("no active input()",), cm.exception.args) self.assertIsNone(fileinput._state)
Example #28
Source File: test_fileinput.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def filename(self): self.invocation_counts["filename"] += 1 return self.return_values["filename"]
Example #29
Source File: base.py From dyc with MIT License | 5 votes |
def clear(self, filename): """ Clear changes in a filename """ try: del self.details[filename] except KeyError: # Probably the filename is not already there return
Example #30
Source File: bashate.py From bashate with Apache License 2.0 | 4 votes |
def check_syntax(filename, report): # run the file through "bash -n" to catch basic syntax errors and # other warnings matches = [] # sample lines we want to match: # foo.sh: line 4: warning: \ # here-document at line 1 delimited by end-of-file (wanted `EOF') # foo.sh: line 9: syntax error: unexpected end of file # foo.sh: line 7: syntax error near unexpected token `}' # # i.e. consistency with ":"'s isn't constant, so just do our # best... r = re.compile( '^(?P<file>.*): line (?P<lineno>[0-9]+): (?P<error>.*)') # we are parsing the error message, so force it to ignore the # system locale so we don't get messages in another language bash_environment = os.environ bash_environment['LC_ALL'] = 'C' proc = subprocess.Popen( ['bash', '-n', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=bash_environment, universal_newlines=True) outputs = proc.communicate() for line in outputs[1].split('\n'): m = r.match(line) if m: matches.append(m) for m in matches: if 'syntax error' in m.group('error'): msg = '%s: %s' % (MESSAGES['E040'].msg, m.group('error')) report.print_error(msg, filename=filename, filelineno=int(m.group('lineno'))) # Matching output from bash warning about here-documents not # ending. # FIXME: are there other warnings that might come out # with "bash -n"? A quick scan of the source code suggests # no, but there might be other interesting things we could # catch. if 'warning:' in m.group('error'): if 'delimited by end-of-file' in m.group('error'): start = re.match('^.*line (?P<start>[0-9]+).*$', m.group('error')) report.print_error( MESSAGES['E012'].msg % int(start.group('start')), filename=filename, filelineno=int(m.group('lineno')))