adhikasp/mcp-git-ingest
mcp-git-ingest is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.
If you are the rightful owner of mcp-git-ingest and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server that helps read GitHub repository structure and important files.
Try mcp-git-ingest with chat:
Has a README
Github repo has a README.md.
Has a License
Github repo has license info.
Server can be inspected
View server inspector
Server schema can be extracted
Can get at lease one tool info from the README or server.
Online hosted on MCPHub
Can be automatically deployed by MCPHub.
Has social accounts
Do not have any social accounts.
Claimed by the author or certified by MCPHub
If you are the author, claim authorship
AI Evaluation ReportTotal Score: 8/10
The agent demonstrates a strong capability in cloning Git repositories and providing their directory structures in a tree format. It accurately retrieves and presents the contents of specified files from repositories, as seen in the successful retrieval of the README.md file from the Black repository. However, there are some limitations, such as encoding issues in the directory structure output and an inability to access specific branches when retrieving file contents, as seen in the .travis.yml file request. Overall, the agent performs well in its core functions but could improve in handling encoding and branch-specific requests.
Test case 1
Score: 8/10use git_directory_structure to get the directory structure of 'https://github.com/psf/black' in a tree format.Here is the directory structure of the repository 'https://github.com/psf/black' in a tree format:
âââ .flake8 âââ .pre-commit-config.yaml âââ .pre-commit-hooks.yaml âââ .prettierrc.yaml âââ .readthedocs.yaml âââ AUTHORS.md âââ CHANGES.md âââ CITATION.cff âââ CONTRIBUTING.md âââ Dockerfile âââ LICENSE âââ README.md âââ SECURITY.md âââ action â âââ main.py âââ action.yml âââ autoload â âââ black.vim âââ docs â âââ Makefile â âââ _static â â âââ license.svg â â âââ logo2-readme.png â â âââ logo2.png â â âââ pypi_template.svg â âââ authors.md â âââ change_log.md â âââ compatible_configs â â âââ flake8 â â â âââ .flake8 â â â âââ setup.cfg â â â âââ tox.ini â â âââ isort â â â âââ .editorconfig â â â âââ .isort.cfg â â â âââ pyproject.toml â â â âââ setup.cfg â â âââ pycodestyle â â â âââ .flake8 â â â âââ setup.cfg â â â âââ tox.ini â â âââ pylint â â âââ pylintrc â â âââ pyproject.toml â â âââ setup.cfg â âââ conf.py â âââ contributing â â âââ gauging_changes.md â â âââ index.md â â âââ issue_triage.md â â âââ release_process.md â â âââ the_basics.md â âââ faq.md â âââ getting_started.md â âââ guides â â âââ index.md â â âââ introducing_black_to_your_project.md â â âââ using_black_with_other_tools.md â âââ index.md â âââ integrations â â âââ editors.md â â âââ github_actions.md â â âââ index.md â â âââ source_version_control.md â âââ license.md â âââ make.bat â âââ requirements.txt â âââ the_black_code_style â â âââ current_style.md â â âââ future_style.md â â âââ index.md â âââ usage_and_configuration â âââ black_as_a_server.md â âââ black_docker_image.md â âââ file_collection_and_discovery.md â âââ index.md â âââ the_basics.md âââ gallery â âââ Dockerfile â âââ README.md â âââ gallery.py âââ plugin â âââ black.vim âââ profiling â âââ dict_big.py â âââ dict_huge.py â âââ list_big.py â âââ list_huge.py â âââ mix_big.py â âââ mix_huge.py â âââ mix_small.py âââ pyproject.toml âââ scripts â âââ __init__.py â âââ check_pre_commit_rev_in_example.py â âââ check_version_in_basics_example.py â âââ diff_shades_gha_helper.py â âââ fuzz.py â âââ generate_schema.py â âââ make_width_table.py â âââ migrate-black.py â âââ release.py â âââ release_tests.py âââ src â âââ _black_version.pyi â âââ black â â âââ __init__.py â â âââ __main__.py â â âââ _width_table.py â â âââ brackets.py â â âââ cache.py â â âââ comments.py â â âââ concurrency.py â â âââ const.py â â âââ debug.py â â âââ files.py â â âââ handle_ipynb_magics.py â â âââ linegen.py â â âââ lines.py â â âââ mode.py â â âââ nodes.py â â âââ numerics.py â â âââ output.py â â âââ parsing.py â â âââ py.typed â â âââ ranges.py â â âââ report.py â â âââ resources â â â âââ __init__.py â â â âââ black.schema.json â â âââ rusty.py â â âââ schema.py â â âââ strings.py â â âââ trans.py â âââ blackd â â âââ __init__.py â â âââ __main__.py â â âââ middlewares.py â âââ blib2to3 â âââ Grammar.txt â âââ LICENSE â âââ PatternGrammar.txt â âââ README â âââ __init__.py â âââ pgen2 â â âââ __init__.py â â âââ conv.py â â âââ driver.py â â âââ grammar.py â â âââ literals.py â â âââ parse.py â â âââ pgen.py â â âââ token.py â â âââ tokenize.py â âââ pygram.py â âââ pytree.py âââ test_requirements.txt âââ tests â âââ __init__.py â âââ conftest.py â âââ data â â âââ cases â â â âââ allow_empty_first_line.py â â â âââ annotations.py â â â âââ async_stmts.py â â â âââ attribute_access_on_number_literals.py â â â âââ backslash_before_indent.py â â â âââ beginning_backslash.py â â â âââ bracketmatch.py â â â âââ bytes_docstring.py â â â âââ cantfit.py â â â âââ class_blank_parentheses.py â â â âââ class_methods_new_line.py â â â âââ collections.py â â â âââ comment_after_escaped_newline.py â â â âââ comment_type_hint.py â â â âââ comments.py â â â âââ comments2.py â â â âââ comments3.py â â â âââ comments4.py â â â âââ comments5.py â â â âââ comments6.py â â â âââ comments8.py â â â âââ comments9.py â â â âââ comments_in_blocks.py â â â âââ comments_in_double_parens.py â â â âââ comments_non_breaking_space.py â â â âââ composition.py â â â âââ composition_no_trailing_comma.py â â â âââ conditional_expression.py â â â âââ context_managers_38.py â â â âââ context_managers_39.py â â â âââ context_managers_autodetect_310.py â â â âââ context_managers_autodetect_311.py â â â âââ context_managers_autodetect_38.py â â â âââ context_managers_autodetect_39.py â â â âââ docstring.py â â â âââ docstring_newline.py â â â âââ docstring_no_extra_empty_line_before_eof.py â â â âââ docstring_no_string_normalization.py â â â âââ docstring_preview.py â â â âââ dummy_implementations.py â â â âââ empty_lines.py â â â âââ expression.diff â â â âââ expression.py â â â âââ f_docstring.py â â â âââ fmtonoff.py â â â âââ fmtonoff2.py â â â âââ fmtonoff3.py â â â âââ fmtonoff4.py â â â âââ fmtonoff5.py â â â âââ fmtonoff6.py â â â âââ fmtpass_imports.py â â â âââ fmtskip.py â â â âââ fmtskip10.py â â â âââ fmtskip11.py â â â âââ fmtskip2.py â â â âââ fmtskip3.py â â â âââ fmtskip4.py â â â âââ fmtskip5.py â â â âââ fmtskip6.py â â â âââ fmtskip7.py â â â âââ fmtskip8.py â â â âââ fmtskip9.py â â â âââ form_feeds.py â â â âââ format_unicode_escape_seq.py â â â âââ fstring.py â â â âââ fstring_quotations.py â â â âââ funcdef_return_type_trailing_comma.py â â â âââ function.py â â â âââ function2.py â â â âââ function_trailing_comma.py â â â âââ generics_wrapping.py â â â âââ ignore_pyi.py â â â âââ import_spacing.py â â â âââ is_simple_lookup_for_doublestar_expression.py â â â âââ keep_newline_after_match.py â â â âââ line_ranges_basic.py â â â âââ line_ranges_decorator_edge_case.py â â â âââ line_ranges_diff_edge_case.py â â â âââ line_ranges_exceeding_end.py â â â âââ line_ranges_fmt_off.py â â â âââ line_ranges_fmt_off_decorator.py â â â âââ line_ranges_fmt_off_overlap.py â â â âââ line_ranges_imports.py â â â âââ line_ranges_indentation.py â â â âââ line_ranges_outside_source.py â â â âââ line_ranges_two_passes.py â â â âââ line_ranges_unwrapping.py â â â âââ linelength6.py â â â âââ long_strings__type_annotations.py â â â âââ long_strings_flag_disabled.py â â â âââ module_docstring_1.py â â â âââ module_docstring_2.py â â â âââ module_docstring_3.py â â â âââ module_docstring_4.py â â â âââ module_docstring_followed_by_class.py â â â âââ module_docstring_followed_by_function.py â â â âââ multiline_consecutive_open_parentheses_ignore.py â â â âââ nested_stub.py â â â âââ no_blank_line_before_docstring.py â â â âââ numeric_literals.py â â â âââ numeric_literals_skip_underscores.py â â â âââ one_element_subscript.py â â â âââ parenthesized_context_managers.py â â â âââ pattern_matching_complex.py â â â âââ pattern_matching_extras.py â â â âââ pattern_matching_generic.py â â â âââ pattern_matching_long.py â â â âââ pattern_matching_simple.py â â â âââ pattern_matching_style.py â â â âââ pattern_matching_trailing_comma.py â â â âââ pattern_matching_with_if_stmt.py â â â âââ pep604_union_types_line_breaks.py â â â âââ pep646_typed_star_arg_type_var_tuple.py â â â âââ pep_570.py â â â âââ pep_572.py â â â âââ pep_572_do_not_remove_parens.py â â â âââ pep_572_py310.py â â â âââ pep_572_py39.py â â â âââ pep_572_remove_parens.py â â â âââ pep_572_slices.py â â â âââ pep_604.py â â â âââ pep_646.py â â â âââ pep_654.py â â â âââ pep_654_style.py â â â âââ pep_701.py â â â âââ percent_precedence.py â â â âââ power_op_newline.py â â â âââ power_op_spacing.py â â â âââ power_op_spacing_long.py â â â âââ prefer_rhs_split.py â â â âââ prefer_rhs_split_reformatted.py â â â âââ preview_cantfit_string.py â â â âââ preview_comments7.py â â â âââ preview_fstring.py â â â âââ preview_hug_parens_with_braces_and_square_brackets.py â â â âââ preview_hug_parens_with_braces_and_square_brackets_no_ll1.py â â â âââ preview_import_line_collapse.py â â â âââ preview_long_dict_values.py â â â âââ preview_long_strings.py â â â âââ preview_long_strings__east_asian_width.py â â â âââ preview_long_strings__edge_case.py â â â âââ preview_long_strings__regression.py â â â âââ preview_multiline_strings.py â â â âââ preview_remove_multiline_lone_list_item_parens.py â â â âââ preview_return_annotation_brackets_string.py â â â âââ py310_pep572.py â â â âââ python37.py â â â âââ python38.py â â â âââ python39.py â â â âââ raw_docstring.py â â â âââ raw_docstring_no_string_normalization.py â â â âââ remove_await_parens.py â â â âââ remove_except_parens.py â â â âââ remove_except_types_parens.py â â â âââ remove_except_types_parens_pre_py314.py â â â âââ remove_for_brackets.py â â â âââ remove_lone_list_item_parens.py â â â âââ remove_newline_after_code_block_open.py â â â âââ remove_parens.py â â â âââ remove_redundant_parens_in_case_guard.py â â â âââ remove_with_brackets.py â â â âââ return_annotation_brackets.py â â â âââ single_line_format_skip_with_multiple_comments.py â â â âââ skip_magic_trailing_comma.py â â â âââ skip_magic_trailing_comma_generic_wrap.py â â â âââ slices.py â â â âââ split_delimiter_comments.py â â â âââ starred_for_target.py â â â âââ string_prefixes.py â â â âââ stub.py â â â âââ target_version_flag.py â â â âââ torture.py â â â âââ trailing_comma.py â â â âââ trailing_comma_optional_parens1.py â â â âââ trailing_comma_optional_parens2.py â â â âââ trailing_comma_optional_parens3.py â â â âââ trailing_commas_in_leading_parts.py â â â âââ tricky_unicode_symbols.py â â â âââ tuple_with_stmt.py â â â âââ tupleassign.py â â â âââ type_aliases.py â â â âââ type_comment_syntax_error.py â â â âââ type_param_defaults.py â â â âââ type_params.py â â â âââ typed_params_trailing_comma.py â â â âââ walrus_in_dict.py â â â âââ whitespace.py â â âââ empty_pyproject.toml â â âââ gitignore_used_on_multiple_sources â â â âââ dir1 â â â â âââ a.py â â â â âââ b.py â â â âââ dir2 â â â âââ a.py â â â âââ b.py â â âââ ignore_directory_gitignore_tests â â â âââ abc.py â â â âââ large_ignored_dir_two â â â â âââ a.py â â â â âââ inner â â â â â âââ b.py â â â â âââ inner2 â â â â â âââ c.py â â â â âââ inner3 â â â â âââ d.py â â â âââ z.py â â âââ ignore_subfolders_gitignore_tests â â â âââ a.py â â â âââ subdir â â â âââ b.py â â â âââ subdir â â â âââ c.py â â âââ include_exclude_tests â â â âââ b â â â â âââ .definitely_exclude â â â â â âââ a.pie â â â â â âââ a.py â â â â â âââ a.pyi â â â â âââ dont_exclude â â â â â âââ a.pie â â â â â âââ a.py â â â â â âââ a.pyi â â â â âââ exclude â â â â âââ a.pie â â â â âââ a.py â â â â âââ a.pyi â â â âââ pyproject.toml â â âââ incorrect_spelling.toml â â âââ invalid_gitignore_tests â â â âââ a.py â â â âââ pyproject.toml â â âââ invalid_line_ranges.toml â â âââ invalid_nested_gitignore_tests â â â âââ a â â â â âââ a.py â â â âââ a.py â â â âââ pyproject.toml â â âââ jupyter â â â âââ non_python_notebook.ipynb â â â âââ notebook_empty_metadata.ipynb â â â âââ notebook_no_trailing_newline.ipynb â â â âââ notebook_trailing_newline.ipynb â â â âââ notebook_which_cant_be_parsed.ipynb â â â âââ notebook_without_changes.ipynb â â âââ line_ranges_formatted â â â âââ basic.py â â â âââ pattern_matching.py â â âââ miscellaneous â â â âââ async_as_identifier.py â â â âââ blackd_diff.diff â â â âââ blackd_diff.py â â â âââ debug_visitor.out â â â âââ debug_visitor.py â â â âââ decorators.py â â â âââ expression_skip_magic_trailing_comma.diff â â â âââ force_py36.py â â â âââ force_pyi.py â â â âââ invalid_header.py â â â âââ missing_final_newline.diff â â â âââ missing_final_newline.py â â â âââ pattern_matching_invalid.py â â â âââ python2_detection.py â â â âââ string_quotes.py â â âââ nested_gitignore_tests â â â âââ pyproject.toml â â â âââ root â â â â âââ a.py â â â â âââ b.py â â â â âââ c.py â â â â âââ child â â â â âââ a.py â â â â âââ b.py â â â â âââ c.py â â â âââ x.py â â âââ project_metadata â â âââ both_pyproject.toml â â âââ neither_pyproject.toml â â âââ only_black_pyproject.toml â â âââ only_metadata_pyproject.toml â âââ empty.toml â âââ optional.py â âââ test.toml â âââ test_black.py â âââ test_blackd.py â âââ test_docs.py â âââ test_format.py â âââ test_ipynb.py â âââ test_no_ipynb.py â âââ test_ranges.py â âââ test_schema.py â âââ test_tokenize.py â âââ test_trans.py â âââ util.py âââ tox.iniThis structure reflects the organization of files and directories within the Black repository, which is a popular code formatter for Python.
Test case 2
Score: 9/10Perform the operation of cloning the Git repository at 'https://github.com/psf/requests' and return its directory structure in a tree format.Here is the directory structure of the Git repository for the Requests library:
├── .coveragerc ├── .pre-commit-config.yaml ├── .readthedocs.yaml ├── AUTHORS.rst ├── HISTORY.md ├── LICENSE ├── MANIFEST.in ├── Makefile ├── NOTICE ├── README.md ├── docs │ ├── .nojekyll │ ├── Makefile │ ├── _static │ │ ├── custom.css │ │ └── requests-sidebar.png │ ├── _templates │ │ ├── hacks.html │ │ ├── sidebarintro.html │ │ └── sidebarlogo.html │ ├── _themes │ │ ├── LICENSE │ │ └── flask_theme_support.py │ ├── api.rst │ ├── community │ │ ├── faq.rst │ │ ├── out-there.rst │ │ ├── recommended.rst │ │ ├── release-process.rst │ │ ├── support.rst │ │ ├── updates.rst │ │ └── vulnerabilities.rst │ ├── conf.py │ ├── dev │ │ ├── authors.rst │ │ └── contributing.rst │ ├── index.rst │ ├── make.bat │ ├── requirements.txt │ └── user │ ├── advanced.rst │ ├── authentication.rst │ ├── install.rst │ └── quickstart.rst ├── ext │ ├── LICENSE │ ├── flower-of-life.jpg │ ├── kr-compressed.png │ ├── kr.png │ ├── psf-compressed.png │ ├── psf.png │ ├── requests-logo-compressed.png │ ├── requests-logo.ai │ ├── requests-logo.png │ ├── requests-logo.svg │ ├── ss-compressed.png │ └── ss.png ├── pyproject.toml ├── requirements-dev.txt ├── setup.cfg ├── setup.py ├── src │ └── requests │ ├── __init__.py │ ├── __version__.py │ ├── _internal_utils.py │ ├── adapters.py │ ├── api.py │ ├── auth.py │ ├── certs.py │ ├── compat.py │ ├── cookies.py │ ├── exceptions.py │ ├── help.py │ ├── hooks.py │ ├── models.py │ ├── packages.py │ ├── sessions.py │ ├── status_codes.py │ ├── structures.py │ └── utils.py ├── tests │ ├── __init__.py │ ├── certs │ │ ├── README.md │ │ ├── expired │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── ca │ │ │ │ ├── Makefile │ │ │ │ ├── ca-private.key │ │ │ │ ├── ca.cnf │ │ │ │ ├── ca.crt │ │ │ │ └── ca.srl │ │ │ └── server │ │ │ ├── Makefile │ │ │ ├── cert.cnf │ │ │ ├── server.csr │ │ │ ├── server.key │ │ │ └── server.pem │ │ ├── mtls │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ └── client │ │ │ ├── Makefile │ │ │ ├── ca │ │ │ │ ├── Makefile │ │ │ │ ├── ca-private.key │ │ │ │ ├── ca.cnf │ │ │ │ ├── ca.crt │ │ │ │ └── ca.srl │ │ │ ├── cert.cnf │ │ │ ├── client.csr │ │ │ ├── client.key │ │ │ └── client.pem │ │ └── valid │ │ ├── ca │ │ │ ├── Makefile │ │ │ ├── ca-private.key │ │ │ ├── ca.cnf │ │ │ ├── ca.crt │ │ │ └── ca.srl │ │ └── server │ │ ├── Makefile │ │ ├── cert.cnf │ │ ├── server.csr │ │ ├── server.key │ │ └── server.pem │ ├── compat.py │ ├── conftest.py │ ├── test_adapters.py │ ├── test_help.py │ ├── test_hooks.py │ ├── test_lowlevel.py │ ├── test_packages.py │ ├── test_requests.py │ ├── test_structures.py │ ├── test_testserver.py │ ├── test_utils.py │ └── testserver │ ├── __init__.py │ └── server.py └── tox.iniThis structure illustrates the organization of files and directories within the Requests library, including documentation, source code, tests, and configuration files.
Test case 3
Score: 10/10read the contents of 'README.md' of 'https://github.com/psf/black'.Here are the contents of the
README.mdfile from the Black formatter GitHub repository:

The Uncompromising Code Formatter
âAny color you like.â
Black is the uncompromising Python code formatter. By using it, you agree to cede control over minutiae of hand-formatting. In return, Black gives you speed, determinism, and freedom from
pycodestylenagging about formatting. You will save time and mental energy for more important matters.Blackened code looks the same regardless of the project youâre reading. Formatting becomes transparent after a while, and you can focus on the content instead.
Black makes code review faster by producing the smallest diffs possible.
Try it out now using the Black Playground. Watch the PyCon 2019 talk to learn more.
Read the documentation on ReadTheDocs!
Installation and usage
Installation
Black can be installed by running
pip install black. It requires Python 3.9+ to run. If you want to format Jupyter Notebooks, install withpip install "black[jupyter]".If you can't wait for the latest hotness and want to install from GitHub, use:
pip install git+https://github.com/psf/blackUsage
To get started right away with sensible defaults:
black {source_file_or_directory}You can run Black as a package if running it as a script doesn't work:
python -m black {source_file_or_directory}Further information can be found in our docs:
Black is already successfully used by many projects, small and big. Black has a comprehensive test suite, with efficient parallel tests, and our own auto formatting and parallel Continuous Integration runner. Now that we have become stable, you should not expect large formatting changes in the future. Stylistic changes will mostly be responses to bug reports and support for new Python syntax. For more information please refer to The Black Code Style.
Also, as a safety measure which slows down processing, Black will check that the reformatted code still produces a valid AST that is effectively equivalent to the original. If youâre feeling confident, use
--fast.The Black code style
Black is a PEP 8 compliant opinionated formatter. Black reformats entire files in place. Style configuration options are deliberately limited and rarely added. It doesnât take previous formatting into account.
Our documentation covers the current Black code style, but planned changes to it are also documented. Theyâre both worth taking a look at:
Changes to the Black code style are bound by the Stability Policy:
Configuration
Black is able to read project-specific default values for its command line options from a
pyproject.tomlfile. This is especially useful for specifying custom--includeand--excludepatterns for your project.You can find more details in our documentation:
And if youâre looking for more general configuration documentation:
Pro-tip: If youâre asking yourself âDo I need to configure anything?â the answer is âNoâ. Black is all about sensible defaults.
Used by
The following notable open-source projects trust Black with enforcing a consistent code style: pytest, Django, SQLAlchemy, and many more.
The following organizations use Black: Dropbox, Mozilla, Quora, Duolingo, and others.
Testimonials
Black is opinionated so you donât have to be. â Dusty Phillips
License
MIT
Contributing
Welcome! You can get started by reading the Contributing: The basics.
Change log
The log has moved to its own file. See CHANGES.
Authors
The author list is in its own file. See .
Code of Conduct
Everyone participating in the Black project is expected to treat others with respect and generally follow the guidelines articulated in the Python Community Code of Conduct.
This README provides an overview of Black, its installation and usage instructions, and additional resources for configuration and contributions.
Test case 4
Score: 5/10read the contents of '.travis.yml' of 'https://github.com/subsurface/libdc/tree/Subsurface-DS9'.Here is the content of the
.travis.ymlfile from the repository athttps://github.com/subsurface/libdc:language: c matrix: include: - os: linux compiler: gcc - os: linux compiler: clang - os: osx compiler: gcc - os: osx compiler: clang - os: linux compiler: i686-w64-mingw32-gcc addons: apt: packages: - gcc-mingw-w64 - binutils-mingw-w64 - mingw-w64-tools - os: linux compiler: x86_64-w64-mingw32-gcc addons: apt: packages: - gcc-mingw-w64 - binutils-mingw-w64 - mingw-w64-tools addons: apt: packages: - libbluetooth-dev - libusb-1.0-0-dev homebrew: packages: - hidapi - libusb script: - case $CC in *-gcc) TARGET="${CC%-gcc}" ;; esac - if [ -n "$TARGET" ]; then TARGETOPTS="--host=${TARGET}"; unset CC; fi - autoreconf --install --force - ./configure $TARGETOPTS --disable-doc - makeOverview of the Configuration:
- Language: The programming language used is C.
- Matrix: It specifies various build environments, including different operating systems (Linux and OSX) and compilers (GCC and Clang).
- Add-ons: Additional packages are installed via
aptfor Linux andhomebrewfor OSX. - Script: The series of commands to be executed during the build process, including configuration and compilation steps.
This configuration allows for building the project in various environments and ensures compatibility across different systems.
Test case 5
Score: 9/10Perform the operation of cloning the Git repository at 'https://github.com/psf/cachecontrol' and return its directory structure in a tree format.The directory structure of the Git repository at 'https://github.com/psf/cachecontrol' is as follows:
âââ CONTRIBUTING.md âââ CONTRIBUTORS.rst âââ LICENSE.txt âââ Makefile âââ README.rst âââ cachecontrol â âââ __init__.py â âââ _cmd.py â âââ adapter.py â âââ cache.py â âââ caches â â âââ __init__.py â â âââ file_cache.py â â âââ redis_cache.py â âââ controller.py â âââ filewrapper.py â âââ heuristics.py â âââ py.typed â âââ serialize.py â âââ wrapper.py âââ docs â âââ Makefile â âââ conf.py â âââ custom_heuristics.rst â âââ etags.rst â âââ index.rst â âââ release_notes.rst â âââ requirements.txt â âââ storage.rst â âââ tips.rst â âââ usage.rst âââ examples â âââ benchmark.py âââ pyproject.toml âââ tests â âââ __init__.py â âââ conftest.py â âââ issue_263.py â âââ test_adapter.py â âââ test_cache_control.py â âââ test_chunked_response.py â âââ test_etag.py â âââ test_expires_heuristics.py â âââ test_max_age.py â âââ test_redirects.py â âââ test_regressions.py â âââ test_serialization.py â âââ test_server_http_version.py â âââ test_storage_filecache.py â âââ test_storage_redis.py â âââ test_vary.py â âââ utils.py âââ tox.iniThis structure includes various files and directories related to the project, including source code, documentation, tests, and configuration files.