### Kill all background jobs `kill $(jobs -p)` ### Run unit-testing and time all procedures `pytest --durations=0` ### Profiling of unittests ``` $ python -m cProfile -o profile $(which py.test) $ python -m cProfile -o profile $(which py.test) tests/script.py::particular_module ``` Afterwards, in python ```python import pstats import sys with open('readable_format.txt', 'w') as stream: stats = pstats.Stats('profile', stream=stream) stats.print_stats() ``` ### Test only a particular module (with printouts) ``` pytest --capture=sys script.py::particular_module ``` Reference from [a post on stackOverflow](https://stackoverflow.com/questions/13532531/python-stats-how-do-i-write-it-to-a-human-readable-file) ### Pull changes from another branch and sync with my own Get the base branch: ``` $ git checkout v1 ``` Pull in any changes to make sure you have the latest version ``` git pull ``` Check out your branch ``` git checkout v1_adminui ``` Rebase your changes on top of the v1 changes ``` git rebase v1 ``` Optionally push your rebased branch ``` git push origin v1_adminui ``` Reference from [a post on StackOverflow](https://stackoverflow.com/questions/31471790/bitbucket-syncing-branch-with-another-branch?lq=1) ### Undo the last commit (while keeping the changes with `--soft`) ``` $ git reset --soft HEAD~1 ``` ### Timing parts of a program ```python import logging import time time_array,chunk_description = list(), list() time_array.append(time.time()) ... time_array.append(time.time()) chunk_description.append('DimMpMkUser') ... for i in range(len(chunk_description)): if time_array[i+1]-time_array[i]>1.0: logging.warning(chunk_description[i]) logging.warning('Time needed: {}' .format(time_array[i+1]-time_array[i])) ``` ### Use `pytest-profile` to profile a single test Install via ``` $ pip install pytest-profiling ``` and then run by ``` $ py.test tests/script.py::particular_module --profile ``` ### Create Symlink in Linux On terminal ``` ln -s /folderorfile/link/will/point/to /name/of/the/link ```