Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from io import StringIO
  4. import argparse
  5. import sys
  6. import unittest
  7.  
  8.  
  9. def quote_list(r, sep=None):
  10. # hope r is smallish
  11. return ", ".join("'{}'".format(t) for t in r.read().split(sep=sep))
  12.  
  13.  
  14. class TestLineSep(unittest.TestCase):
  15. expected = (
  16. "'1', '2', '3'"
  17. )
  18.  
  19. def test_commas(self):
  20. self.assertEqual(self.expected, quote_list(StringIO("1,2,3"), ','))
  21.  
  22. def test_newline(self):
  23. self.assertEqual(self.expected, quote_list(StringIO("1\n2\n3\n")))
  24. self.assertEqual(self.expected, quote_list(StringIO("1\n2\n3")))
  25.  
  26. def test_whitespace(self):
  27. self.assertEqual(self.expected, quote_list(StringIO("1 2 3")))
  28. self.assertEqual(self.expected, quote_list(StringIO("1 2 3 ")))
  29.  
  30.  
  31. def main():
  32. parser = argparse.ArgumentParser()
  33. parser.add_argument('-f', '--field-separator', default=None, type=str)
  34. parser.add_argument('input', type=argparse.FileType('r'))
  35. args = parser.parse_args()
  36.  
  37. print(quote_list(args.input, args.field_separator))
  38.  
  39.  
  40. if __name__ == '__main__':
  41. if sys.stdin.isatty() and len(sys.argv) > 1 and sys.argv[1] == 'test':
  42. sys.argv.pop(1)
  43. unittest.main()
  44. else:
  45. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement