.flake8
.gitignore
LICENSE
Makefile
README.md
coverage.svg
pyproject.toml
requirements.in
requirements.txt
.github/dependabot.yml
.github/workflows/ci.yml
.github/workflows/publish.yml
pyrecipes/__init__.py
pyrecipes/chapter.py
pyrecipes/cookbook.py
pyrecipes/errors.py
pyrecipes/recipe.py
pyrecipes/template.py
pyrecipes/utils.py
pyrecipes.egg-info/PKG-INFO
pyrecipes.egg-info/SOURCES.txt
pyrecipes.egg-info/dependency_links.txt
pyrecipes.egg-info/entry_points.txt
pyrecipes.egg-info/requires.txt
pyrecipes.egg-info/top_level.txt
pyrecipes/cli/__init__.py
pyrecipes/cli/chapters.py
pyrecipes/cli/ls.py
pyrecipes/cli/main.py
pyrecipes/cli/run.py
pyrecipes/cli/search.py
pyrecipes/cli/show.py
pyrecipes/recipes/__init__.py
pyrecipes/recipes/01_data_structures_and_algorithms/01_unpacking_a_sequence_into_separate_variables/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/02_unpacking_elements_from_iterables_of_arbitrary_length/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/03_keep_last_n_items/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/03_keep_last_n_items/somefile.txt
pyrecipes/recipes/01_data_structures_and_algorithms/04_finding_largest_or_smallest_n_items/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/05_implementing_a_priority_queue/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/06_mapping_keys_to_multiple_values_in_a_dictionary/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/07_keeping_dictionaries_in_order/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/08_calculating_with_dictionaries/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/09_finding_commonalities_between_two_dictionaries/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/10_removing_duplicates_from_a_sequence_while_maintaining_order/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/11_naming_a_slice/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/12_determining_the_most_frequently_occurring_items_in_a_sequence/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/13_sorting_a_list_of_dictionaries_by_a_common_key/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/14_sorting_objects_without_native_comparison_support/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/15_grouping_records_together_based_on_a_field/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/16_filtering_sequence_element/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/17_extracting_a_subset_of_a_dictionary/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/18_mapping_names_to_a_sequence_of_elements/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/19_transforming_and_reducing_data_at_the_same_time/example.py
pyrecipes/recipes/01_data_structures_and_algorithms/20_combining_multiple_mappings_into_a_single_mapping/example.py
pyrecipes/recipes/02_strings_and_text/01_splitting_strings_on_any_of_multiple_delimiters/example.py
pyrecipes/recipes/02_strings_and_text/02_matching_text_at_start_or_end_of_a_string/example.py
pyrecipes/recipes/02_strings_and_text/03_matching_strings_using_shell_wildcard_patterns/example.py
pyrecipes/recipes/02_strings_and_text/04_matching_and_searching_for_text_patterns/example.py
pyrecipes/recipes/02_strings_and_text/05_searching_and_replacing_text/example.py
pyrecipes/recipes/02_strings_and_text/06_searching_and_replacing_case_insensitive_text/example.py
pyrecipes/recipes/02_strings_and_text/07_specifying_a_regular_expression_for_the_shortest_match/example.py
pyrecipes/recipes/02_strings_and_text/08_writing_a_regular_expression_for_multiline_patterns/example.py
pyrecipes/recipes/02_strings_and_text/09_normalizing_unicode_text_to_a_standard_representation/example.py
pyrecipes/recipes/02_strings_and_text/10_working_with_unicode_characters_in_regular_expressions/example.py
pyrecipes/recipes/02_strings_and_text/11_stripping_unwanted_characters_from_strings/example.py
pyrecipes/recipes/02_strings_and_text/20_performing_text_operations_on_byte_strings/example.py
pyrecipes/recipes/03_numbers_dates_and_times/01_rounding_numerical_values/example.py
pyrecipes/recipes/03_numbers_dates_and_times/02_performing_accurate_decimal_calculations/example.py
pyrecipes/recipes/03_numbers_dates_and_times/03_formatting_numbers_for_output/example.py
pyrecipes/recipes/03_numbers_dates_and_times/04_working_with_binary_octal_and_hexidecimal_integers/example.py
pyrecipes/recipes/03_numbers_dates_and_times/05_packing_and_unpacking_large_integers_from_bytes/example.py
pyrecipes/recipes/04_iterators_and_generators/01_manually_consuming_an_iterator/example.py
pyrecipes/recipes/04_iterators_and_generators/01_manually_consuming_an_iterator/somefile.txt
pyrecipes/recipes/04_iterators_and_generators/02_delegating_iteration/example.py
pyrecipes/recipes/04_iterators_and_generators/03_creating_new_iteration_patterns_with_generators/example.py
pyrecipes/recipes/04_iterators_and_generators/04_implementing_the_iterator_protocol/example.py
pyrecipes/recipes/04_iterators_and_generators/05_iterating_in_reverse/example.py
pyrecipes/recipes/04_iterators_and_generators/06_defining_a_generator_function_with_extra_state/example.py
pyrecipes/recipes/04_iterators_and_generators/06_defining_a_generator_function_with_extra_state/somefile.txt
pyrecipes/recipes/04_iterators_and_generators/07_taking_a_slice_of_an_iterator/example.py
pyrecipes/recipes/04_iterators_and_generators/08_skipping_the_first_part_of_an_iterable/example.py
pyrecipes/recipes/04_iterators_and_generators/08_skipping_the_first_part_of_an_iterable/somefile.txt
pyrecipes/recipes/04_iterators_and_generators/09_iterating_over_all_possible_combinations_or_permutations/example.py
pyrecipes/recipes/04_iterators_and_generators/10_iterating_over_the_index_value_pairs_of_a_sequence/example.py
pyrecipes/recipes/04_iterators_and_generators/13_creating_data_processing_pipelines/example.py
pyrecipes/recipes/04_iterators_and_generators/13_creating_data_processing_pipelines/data/bar/access-log
pyrecipes/recipes/04_iterators_and_generators/13_creating_data_processing_pipelines/data/bar/access-log-0108.bz2
pyrecipes/recipes/04_iterators_and_generators/13_creating_data_processing_pipelines/data/bar/access-log-0208.bz2
pyrecipes/recipes/04_iterators_and_generators/13_creating_data_processing_pipelines/data/foo/access-log
pyrecipes/recipes/04_iterators_and_generators/13_creating_data_processing_pipelines/data/foo/access-log-0108.gz
pyrecipes/recipes/04_iterators_and_generators/13_creating_data_processing_pipelines/data/foo/access-log-0208.gz
pyrecipes/recipes/04_iterators_and_generators/14_flattening_a_nested_sequence/example.py
pyrecipes/recipes/04_iterators_and_generators/15_iterating_in_sorted_order_over_merged_sorted_iterables/example.py
pyrecipes/recipes/04_iterators_and_generators/16_replacing_infinite_while_loops_with_an_iterator/access-log
pyrecipes/recipes/04_iterators_and_generators/16_replacing_infinite_while_loops_with_an_iterator/example.py
pyrecipes/recipes/05_files_and_io/01_reading_and_writing_text_files/example.py
pyrecipes/recipes/05_files_and_io/01_reading_and_writing_text_files/sample.txt
pyrecipes/recipes/05_files_and_io/02_printing_to_a_file/example.py
pyrecipes/recipes/05_files_and_io/02_printing_to_a_file/somefile.txt
pyrecipes/recipes/05_files_and_io/03_printing_with_a_different_separator_or_line_ending/example.py
pyrecipes/recipes/05_files_and_io/04_reading_and_writing_binary_data/data.bin
pyrecipes/recipes/05_files_and_io/04_reading_and_writing_binary_data/example.py
pyrecipes/recipes/05_files_and_io/05_writing_to_a_file_that_doesnt_already_exist/example.py
pyrecipes/recipes/05_files_and_io/05_writing_to_a_file_that_doesnt_already_exist/somefile.txt
pyrecipes/recipes/05_files_and_io/06_performing_io_operations_on_a_string/example.py
pyrecipes/recipes/06_data_encoding_and_processing/01_reading_and_writing_csv_data/example.py
pyrecipes/recipes/06_data_encoding_and_processing/01_reading_and_writing_csv_data/stocks.csv
pyrecipes/recipes/06_data_encoding_and_processing/02_reading_and_writing_json_data/data.json
pyrecipes/recipes/06_data_encoding_and_processing/02_reading_and_writing_json_data/example.py
pyrecipes/recipes/07_functions/01_writing_functions_that_accept_any_number_of_arguments/example.py
pyrecipes/recipes/07_functions/02_writing_functions_that_only_accept_keyword_arguments/example.py
pyrecipes/recipes/07_functions/03_attaching_informational_metadata_to_function_arguments/example.py
pyrecipes/recipes/08_classes_and_objects/01_changing_the_string_representation_of_instances/example.py
pyrecipes/recipes/08_classes_and_objects/05_encapsulating_names_in_a_class/example.py
pyrecipes/recipes/08_classes_and_objects/06_creating_managed_attributes/example.py
pyrecipes/recipes/08_classes_and_objects/07_calling_a_method_on_a_parent_class/example.py
pyrecipes/recipes/08_classes_and_objects/08_extending_a_property_in_a_subclass/example.py
pyrecipes/recipes/08_classes_and_objects/09_creating_a_new_kind_of_class_or_instance_attribute/example.py
pyrecipes/recipes/08_classes_and_objects/10_using_lazilly_computed_properties/example.py
pyrecipes/recipes/08_classes_and_objects/11_simplifying_the_initialization_of_a_data_structure/example.py
pyrecipes/recipes/09_metaprogramming/01_putting_a_wrapper_around_a_function/example.py
pyrecipes/recipes/09_metaprogramming/03_unwrapping_a_decorator/example.py
pyrecipes/recipes/09_metaprogramming/04_defining_a_decorator_that_takes_arguments/example.py
pyrecipes/recipes/09_metaprogramming/07_enforcing_type_checking_on_a_function_using_a_decorator/example.py
pyrecipes/recipes/11_networking_and_web_programming/01_interacting_with_http_services_as_a_client/example.py
pyrecipes/recipes/12_concurrency/01_starting_and_stopping_threads/example.py
pyrecipes/recipes/12_concurrency/02_determining_if_a_thread_has_started/example.py
pyrecipes/recipes/12_concurrency/03_communicating_between_threads/example.py
pyrecipes/recipes/12_concurrency/07_creating_a_thread_pool/example.py
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/example.py
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121217.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121218.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121219.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121220.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121221.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121222.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121223.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121224.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121225.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121226.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121227.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121228.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121229.log.gz
pyrecipes/recipes/12_concurrency/08_performing_simple_parallel_programming/logs/20121230.log.gz
tests/conftest.py
tests/test_chapter.py
tests/test_cookbook.py
tests/test_recipe.py
tests/test_utils.py
tests/cli/test_commands_basic.py