====== Python ======
Useful Python code, with no particular order
===== All asserts methods =====
More info https://www.mattcrampton.com/blog/a_list_of_all_python_assert_methods/
^ Method ^ Checks ^ Version ^
| assertEqual | a == b | |
| assertNotEqual | a != b | |
| assertTrue | bool(x) is True | |
| assertFalse | bool(x) is False | |
| assertIs | a is b | 2.7 |
| assertIsNot | a is not b | 2.7 |
| assertIsNone | x is None | 2.7 |
| assertIsNotNone | x is not None | 2.7 |
| assertIn | a in b | 2.7 |
| assertNotIn | a not in b | 2.7 |
| assertIsInstance | is instance(a,b) | 2.7 |
| assertNotIsInstance | not is instance(a,b) | 2.7 |
| assertRaises | fun(*args,**kwds) raises exc | |
| assertRaisesRegexp | fun(*args,**kwds) raises exc(regex) | 2.7 |
| assertAlmostEqual | round(a-b,7) == 0 | |
| assertNotAlmostEqual | round(a-b,7) != 0 | |
| assertGreater | a > b | 2.7 |
| assertGreaterEqual | a >= b | 2.7 |
| assertLess | a < b | 2.7 |
| assertLessEqual | a <= b | 2.7 |
| assertRegexpMatches | r.search(s) | 2.7 |
| assertNotRegexpMatches | not r.search(s) | 2.7 |
| assertItemsEqual | sorted(a) == sorted(b) | 2.7 |
| assertDictContainsSubset | all the key/value pairs in a exist in b | 2.7 |
| assertMultiLineEqual | strings | 2.7 |
| assertSequenceEqual | sequences | 2.7 |
| assertListEqual | lists | 2.7 |
| assertTupleEqual | tuples | 2.7 |
| assertSetEqual | sets or frozensets | 2.7 |
| assertDictEqual | dicts | 2.7 |
===== Dates =====
==== strftime() and strptime() Format Codes ====
More info https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
| Directive | Meaning | Example | Notes |
| %a | Weekday as locale’s abbreviated name. | Sun, Mon, …, Sat (en_US);So, Mo, …, Sa (de_DE) | (1) |
| %A | Weekday as locale’s full name. | Sunday, Monday, …, Saturday (en_US);Sonntag, Montag, …, Samstag (de_DE) | (1) |
| %w | Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. | 0, 1, …, 6 | |
| %d | Day of the month as a zero-padded decimal number. | 01, 02, …, 31 | (9) |
| %b | Month as locale’s abbreviated name. | Jan, Feb, …, Dec (en_US);Jan, Feb, …, Dez (de_DE) | (1) |
| %B | Month as locale’s full name. | January, February, …, December (en_US);Januar, Februar, …, Dezember (de_DE) | (1) |
| %m | Month as a zero-padded decimal number. | 01, 02, …, 12 | (9) |
| %y | Year without century as a zero-padded decimal number. | 00, 01, …, 99 | (9) |
| %Y | Year with century as a decimal number. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 | (2) |
| %H | Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, …, 23 | (9) |
| %I | Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, …, 12 | (9) |
| %p | Locale’s equivalent of either AM or PM. | AM, PM (en_US);am, pm (de_DE) | (1), (3) |
| %M | Minute as a zero-padded decimal number. | 00, 01, …, 59 | (9) |
| %S | Second as a zero-padded decimal number. | 00, 01, …, 59 | (4), (9) |
| %f | Microsecond as a decimal number, zero-padded on the left. | 000000, 000001, …, 999999 | (5) |
| %z | UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is naive). | (empty), +0000, -0400, +1030, +063415, -030712.345216 | (6) |
| %Z | Time zone name (empty string if the object is naive). | (empty), UTC, GMT | (6) |
| %j | Day of the year as a zero-padded decimal number. | 001, 002, …, 366 | (9) |
| %U | Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. | 00, 01, …, 53 | (7), (9) |
| %W | Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. | 00, 01, …, 53 | (7), (9) |
| %c | Locale’s appropriate date and time representation. | Tue Aug 16 21:30:00 1988 (en_US);Di 16 Aug 21:30:00 1988 (de_DE) | (1) |
| %x | Locale’s appropriate date representation. | 08/16/88 (None);08/16/1988 (en_US);16.08.1988 (de_DE) | (1) |
| %X | Locale’s appropriate time representation. | 21:30:00 (en_US);21:30:00 (de_DE) | (1) |
| %% | A literal '%' character. | % | |
==== Convert strings to datetime ====
More info https://stackabuse.com/converting-strings-to-datetime-in-python/
import datetime
date_time_str = 'Jun 28 2018 7:40AM'
date_time_obj = datetime.datetime.strptime(date_time_str, '%b %d %Y %I:%M%p')
print('Date:', date_time_obj.date())
print('Time:', date_time_obj.time())
print('Date-time:', date_time_obj)
===== Inline =====
==== For loops ====
[print(day) for day in ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']]
>>> monday
tuesday
wednesday
thursday
friday
[None, None, None, None, None]
==== If statements ====
today = 'friday'
print('yay!') if today == 'friday' else print('boo')
>>> yay!
==== Unpack extras on a tuple or list ====
t = (0, 1, 2, 3, 4)
a, b, *c = t
print(a)
print(b)
print(c)
# 0
# 1
# [2, 3, 4]
print(type(c))
#
a, *b, c = t
print(a)
print(b)
print(c)
# 0
# [1, 2, 3]
# 4
*a, b, c = t
print(a)
print(b)
print(c)
# [0, 1, 2]
# 3
# 4