{"id":13467930,"url":"https://github.com/APrioriInvestments/typed_python","last_synced_at":"2025-03-26T03:31:18.840Z","repository":{"id":38206070,"uuid":"104091368","full_name":"APrioriInvestments/typed_python","owner":"APrioriInvestments","description":"An llvm-based framework for generating and calling into high-performance native code from Python.","archived":false,"fork":false,"pushed_at":"2024-02-16T21:32:27.000Z","size":12496,"stargazers_count":198,"open_issues_count":71,"forks_count":8,"subscribers_count":13,"default_branch":"dev","last_synced_at":"2025-03-07T13:05:57.411Z","etag":null,"topics":["compiler","python-programming"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/APrioriInvestments.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null}},"created_at":"2017-09-19T15:13:49.000Z","updated_at":"2024-11-17T18:06:12.000Z","dependencies_parsed_at":"2023-11-22T22:31:30.405Z","dependency_job_id":"ed7388e9-7cf4-410f-bf06-0043d0f08551","html_url":"https://github.com/APrioriInvestments/typed_python","commit_stats":{"total_commits":1806,"total_committers":19,"mean_commits":95.05263157894737,"dds":"0.36101882613510516","last_synced_commit":"6b010c1644e3d820a89a4ec246af8b160f3ecf2c"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APrioriInvestments%2Ftyped_python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APrioriInvestments%2Ftyped_python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APrioriInvestments%2Ftyped_python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APrioriInvestments%2Ftyped_python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/APrioriInvestments","download_url":"https://codeload.github.com/APrioriInvestments/typed_python/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245584747,"owners_count":20639620,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compiler","python-programming"],"created_at":"2024-07-31T15:01:02.721Z","updated_at":"2025-03-26T03:31:17.459Z","avatar_url":"https://github.com/APrioriInvestments.png","language":"Python","readme":"[![Build Status](https://travis-ci.com/APrioriInvestments/typed_python.svg?branch=dev)](https://travis-ci.com/APrioriInvestments/typed_python.svg?branch=dev)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n\n# `typed_python`\n\nThe `typed_python` module provides strong runtime types to Python and a compiler\nthat can take advantage of them.\n\nIt gives you new types you can use to build strongly- and semi-strongly-typed\ndatastructures, so that your program is easier to understand, and a compiler toolchain\nthat can take advantage of those datastructures to generate machine code that's\nfast, and that doesn't need the GIL.\n\n`typed_python` is a standard modules that run on Python 3.6 and higher. You can use it\nincrementally throughout your project -  add a few type constraints here and\nthere, or compile a couple of small but performance-critical functions. As you\nadd more type information, more of your program can be compiled. Everything\ncan still run in interpreter without compilation if you want.\n\n`typed_python` is generously supported by [A Priori Investments](www.aprioriinvestments.com), a quantitative\nhedge fund in New York.  If you're interested in working with us, drop us a line at info@aprioriinvestments.com.\n\n## Getting started\n\nYou can read the [introductory tutorial](docs/introduction.md) for using `typed_python` or\ncheck out the documentation [typed_python](docs/typed_python.md).\n\n## Where did this come from?\n\nEvery time I (Braxton) find myself writing a lot of Python code, I eventually\nstart to miss C++. As my program gets bigger, I find myself losing track of\nwhat types are supposed to go where. My code gets littered with 'isinstance'\nassertions trying to catch mistakes early and provide information about what\nkinds of types I expect in certain parts of the code. Compilers solve these\nkinds of problems because the type information is out front directly in the code,\nand they can find bugs without having to run the program.  And of course, I\nmiss the performance you get out of C++ - every time I write some overly complicated\nnumpy code, I think to myself how much easier to understand this code would be\nif I could only write a loop.\n\nOn the other hand, whenever I write a lot of C++, I find myself missing the\nexpressiveness of Python, the ability to iterate without a painful compile\ncycle, the safety you get from having bad code throw an exception instead of\nproducing a segfault.  And of course, nobody likes looking through a ten page\nerror log just to find out that a template parameter is missing.\n\nI developed `typed_python` to try to have the best of both worlds.  `typed_python`\nlets me have a single codebase, written entirely in Python, where I can\nchoose, depending on the context, which style of code I want, from totally\nfree-form Python with total type chaos, to statically typed, highly performant\ncode, and anything in between.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAPrioriInvestments%2Ftyped_python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAPrioriInvestments%2Ftyped_python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAPrioriInvestments%2Ftyped_python/lists"}