Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt Epperson committed Jun 5, 2023
0 parents commit c28c83c
Show file tree
Hide file tree
Showing 13 changed files with 519 additions and 0 deletions.
1 change: 1 addition & 0 deletions .bazelversion
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6.2.0
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# bazel build tree
/bazel-*

# User-specific bazelrc file
/.bazelrc.user

# Visual Studio Code user configuration
/.vscode/configurationCache.log

# vim swap files
*.swo
*.swp

# Clangd
/.clangd/**

15 changes: 15 additions & 0 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
load("@rules_python//python:pip.bzl", "compile_pip_requirements")

exports_files([".clang-tidy"])

compile_pip_requirements(
name = "requirements",
# Due to usage of setuptools
extra_args = ["--allow-unsafe"],
requirements_txt = "requirements_lock.txt",
tags = [
"flaky",
"no-remote-exec",
"requires-network",
],
)
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# rules_symforce

Simplify the generation and compilation of symforce
targets.

Usage:

```py
# //:WORKSPACE
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
name = "rules_symforce",
strip_prefix = "rules_symforce",
sha256 = "e2f7f689e3a2e3c16f55d8e6a4abd79693eaf0f3",
url = "https://github.com/matte1/rules_symforce/archive/refs/tags/v0.0.0.zip",
)
```

## Example

To see the tool in action:

1. Clone the repository
2. Run the example target:

bazel run //example:test_simple
58 changes: 58 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
workspace(name = "rules_symforce")

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
name = "rules_python",
sha256 = "cdf6b84084aad8f10bf20b46b77cb48d83c319ebe6458a18e9d2cebf57807cdd",
strip_prefix = "rules_python-0.8.1",
url = "https://github.com/bazelbuild/rules_python/archive/0.8.1.tar.gz",
)

load("@rules_python//python:repositories.bzl", "python_register_toolchains")

python_register_toolchains(
name = "python3_10",
python_version = "3.10",
)

load("@python3_10//:defs.bzl", "interpreter")
load("@rules_python//python:pip.bzl", "pip_parse")

pip_parse(
name = "python_deps",
extra_pip_args = [],
python_interpreter_target = interpreter,
requirements_lock = "//:requirements_lock.txt",
)

load("@python_deps//:requirements.bzl", "install_deps")

install_deps()

eigen = ("3.4.0", "8586084f71f9bde545ee7fa6d00288b264a2b7ac3607b974e54d13e7162c1c72")

http_archive(
name = "eigen3",
# build_file = "//third_party:BUILD.eigen3",
build_file_content =
"""
# TODO(keir): Replace this with a better version, like from TensorFlow.
# See https://github.com/ceres-solver/ceres-solver/issues/337.
cc_library(
name = 'eigen3',
srcs = [],
includes = ['.'],
hdrs = glob(['Eigen/**']),
visibility = ['//visibility:public'],
)
""",
sha256 = eigen[1],
strip_prefix = "eigen-{}".format(eigen[0]),
urls = [
"https://gitlab.com/libeigen/eigen/-/archive/{}/eigen-{}.tar.gz".format(
eigen[0],
eigen[0],
),
],
)
13 changes: 13 additions & 0 deletions examples/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
load("//symforce_wrapper:symforce_wrapper.bzl", "symforce")

symforce(
name = "simple",
generator = "gen_simple.py",
visibility = ["//visibility:public"],
)

cc_test(
name = "test_simple",
srcs = ["test_simple.cc"],
deps = [":sym_simple_cc"],
)
15 changes: 15 additions & 0 deletions examples/gen_simple.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""Simple example of getting hessian and gradient of a function."""
import symforce

symforce.set_epsilon_to_number()

import symforce.symbolic as sf
from symforce_wrapper.generator import generate_linearizations


def simple(x: sf.Scalar, y: sf.Scalar) -> sf.V1:
"""Simple quadratic function."""
return sf.V1(x * x + y * y + x + y)


generate_linearizations(simple, which_args=["x", "y"])
24 changes: 24 additions & 0 deletions examples/test_simple.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include "examples/simple.hh"

#include <Eigen/Dense>
#include <iostream>

int main() {
double x = 1.0;
double y = 2.0;

Eigen::Matrix<double, 1, 1> res{};
Eigen::Matrix<double, 1, 2> jacobian{};
Eigen::Matrix<double, 2, 2> hessian{};
Eigen::Matrix<double, 2, 1> rhs{};

sym::SimpleFactor(x, y, &res, &jacobian, &hessian, &rhs);

Eigen::Matrix<double, 1, 2> expected_jacobian{3.0, 5.0};

assert(expected_jacobian.isApprox(jacobian,
std::numeric_limits<double>::epsilon()) &&
"Expected Jacobian doesn't match symforce Jacobian");

return 0;
}
4 changes: 4 additions & 0 deletions requirements.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# This is the human-readable source of truth for python third party dependencies.
# The file //:requirements_lock.txt is generated from this file by running
# > bazel run //:requirements.update
symforce
210 changes: 210 additions & 0 deletions requirements_lock.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# bazel run //:requirements.update
#
argh==0.28.1 \
--hash=sha256:10e7311f3ea54a78a366e5456900d8b81049f44d8d653b524eb90cf7d29a71ee \
--hash=sha256:b2093086f0e809a3ecc24b64a2145309ee8f56d034936cd59e57c558a357329d
# via skymarshal
black==22.3.0 \
--hash=sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b \
--hash=sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176 \
--hash=sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09 \
--hash=sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a \
--hash=sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015 \
--hash=sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79 \
--hash=sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb \
--hash=sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20 \
--hash=sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464 \
--hash=sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968 \
--hash=sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82 \
--hash=sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21 \
--hash=sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0 \
--hash=sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265 \
--hash=sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b \
--hash=sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a \
--hash=sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72 \
--hash=sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce \
--hash=sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0 \
--hash=sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a \
--hash=sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163 \
--hash=sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad \
--hash=sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d
# via symforce
clang-format==16.0.4 \
--hash=sha256:0ac80dc2f02f086c3d33bc3712889d612243282099576c827d57b593602da5be \
--hash=sha256:1e1970f68aa8a065fd4e37bba955a9f71506521ea3e0b27bbcdf7e81517db904 \
--hash=sha256:3bc415a27351f179a7485a85f9c41dd16313969eb37aed12343b3376004fc301 \
--hash=sha256:43639fa36768c91ca135686e92bf8be8e7c98d586e2968924ffb10bae9e9fdff \
--hash=sha256:4cdb618c7deaf9f864c367223d13e52def2cb457ff33c3fbb2c91cd4bfa5c03b \
--hash=sha256:6be733dd7748420b28d1c860a776aa774a106e3665ab1340e3a5d90f3744dc83 \
--hash=sha256:74e6d7b045774474bb5d142564cb64a5698915073f76b69046229504e5dbb96a \
--hash=sha256:796f1945de740f15d5cb78e9ab966aa9d774cb6d7da4ec67b1b9a8ea24f71533 \
--hash=sha256:97d1478ce52e403aa54165ba47df919327378e3ede2a7af322ea2e06a34b5d15 \
--hash=sha256:d0dcc97b26c10ee9138a44f73085834b5d55c35450a303ce991c3be826586a76 \
--hash=sha256:d6ff7108fb06578c7ab4f839a2138c621b111a24bcbc4fe94457641b4727e737 \
--hash=sha256:dd85d30c99ab9f37ffe19c1123e416d7aa407950ee79480525d370f17a161297 \
--hash=sha256:e0aafcbc472bb190e104c2dbe004fcf6aa03debd1e22d7be1d065524188744b2 \
--hash=sha256:fb105f9e0ec826bef78335ae83570511ff74526b9d117b47f0581f052d2423b0
# via symforce
click==8.1.3 \
--hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \
--hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48
# via black
graphviz==0.20.1 \
--hash=sha256:587c58a223b51611c0cf461132da386edd896a029524ca61a1462b880bf97977 \
--hash=sha256:8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8
# via symforce
jinja2==3.1.2 \
--hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \
--hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61
# via
# skymarshal
# symforce
markupsafe==2.1.1 \
--hash=sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003 \
--hash=sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88 \
--hash=sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5 \
--hash=sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7 \
--hash=sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a \
--hash=sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603 \
--hash=sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1 \
--hash=sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135 \
--hash=sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247 \
--hash=sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6 \
--hash=sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601 \
--hash=sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77 \
--hash=sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02 \
--hash=sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e \
--hash=sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63 \
--hash=sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f \
--hash=sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980 \
--hash=sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b \
--hash=sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812 \
--hash=sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff \
--hash=sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96 \
--hash=sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1 \
--hash=sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925 \
--hash=sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a \
--hash=sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6 \
--hash=sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e \
--hash=sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f \
--hash=sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4 \
--hash=sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f \
--hash=sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3 \
--hash=sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c \
--hash=sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a \
--hash=sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417 \
--hash=sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a \
--hash=sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a \
--hash=sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37 \
--hash=sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452 \
--hash=sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933 \
--hash=sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a \
--hash=sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7
# via jinja2
mpmath==1.2.1 \
--hash=sha256:604bc21bd22d2322a177c73bdb573994ef76e62edd595d17e00aff24b0667e5c \
--hash=sha256:79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a
# via sympy
mypy-extensions==0.4.3 \
--hash=sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d \
--hash=sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8
# via black
numpy==1.22.3 \
--hash=sha256:07a8c89a04997625236c5ecb7afe35a02af3896c8aa01890a849913a2309c676 \
--hash=sha256:08d9b008d0156c70dc392bb3ab3abb6e7a711383c3247b410b39962263576cd4 \
--hash=sha256:201b4d0552831f7250a08d3b38de0d989d6f6e4658b709a02a73c524ccc6ffce \
--hash=sha256:2c10a93606e0b4b95c9b04b77dc349b398fdfbda382d2a39ba5a822f669a0123 \
--hash=sha256:3ca688e1b9b95d80250bca34b11a05e389b1420d00e87a0d12dc45f131f704a1 \
--hash=sha256:48a3aecd3b997bf452a2dedb11f4e79bc5bfd21a1d4cc760e703c31d57c84b3e \
--hash=sha256:568dfd16224abddafb1cbcce2ff14f522abe037268514dd7e42c6776a1c3f8e5 \
--hash=sha256:5bfb1bb598e8229c2d5d48db1860bcf4311337864ea3efdbe1171fb0c5da515d \
--hash=sha256:639b54cdf6aa4f82fe37ebf70401bbb74b8508fddcf4797f9fe59615b8c5813a \
--hash=sha256:8251ed96f38b47b4295b1ae51631de7ffa8260b5b087808ef09a39a9d66c97ab \
--hash=sha256:92bfa69cfbdf7dfc3040978ad09a48091143cffb778ec3b03fa170c494118d75 \
--hash=sha256:97098b95aa4e418529099c26558eeb8486e66bd1e53a6b606d684d0c3616b168 \
--hash=sha256:a3bae1a2ed00e90b3ba5f7bd0a7c7999b55d609e0c54ceb2b076a25e345fa9f4 \
--hash=sha256:c34ea7e9d13a70bf2ab64a2532fe149a9aced424cd05a2c4ba662fd989e3e45f \
--hash=sha256:dbc7601a3b7472d559dc7b933b18b4b66f9aa7452c120e87dfb33d02008c8a18 \
--hash=sha256:e7927a589df200c5e23c57970bafbd0cd322459aa7b1ff73b7c2e84d6e3eae62 \
--hash=sha256:f8c1f39caad2c896bc0018f699882b345b2a63708008be29b1f355ebf6f933fe \
--hash=sha256:f950f8845b480cffe522913d35567e29dd381b0dc7e4ce6a4a9f9156417d2430 \
--hash=sha256:fade0d4f4d292b6f39951b6836d7a3c7ef5b2347f3c420cd9820a1d90d794802 \
--hash=sha256:fdf3c08bce27132395d3c3ba1503cac12e17282358cb4bddc25cc46b0aca07aa
# via
# scipy
# skymarshal
# symforce
# symforce-sym
pathspec==0.9.0 \
--hash=sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a \
--hash=sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1
# via black
platformdirs==2.5.1 \
--hash=sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d \
--hash=sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227
# via black
ply==3.11 \
--hash=sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3 \
--hash=sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce
# via skymarshal
scipy==1.10.0 \
--hash=sha256:0490dc499fe23e4be35b8b6dd1e60a4a34f0c4adb30ac671e6332446b3cbbb5a \
--hash=sha256:0ab2a58064836632e2cec31ca197d3695c86b066bc4818052b3f5381bfd2a728 \
--hash=sha256:151f066fe7d6653c3ffefd489497b8fa66d7316e3e0d0c0f7ff6acca1b802809 \
--hash=sha256:16ba05d3d1b9f2141004f3f36888e05894a525960b07f4c2bfc0456b955a00be \
--hash=sha256:27e548276b5a88b51212b61f6dda49a24acf5d770dff940bd372b3f7ced8c6c2 \
--hash=sha256:2ad449db4e0820e4b42baccefc98ec772ad7818dcbc9e28b85aa05a536b0f1a2 \
--hash=sha256:2f9ea0a37aca111a407cb98aa4e8dfde6e5d9333bae06dfa5d938d14c80bb5c3 \
--hash=sha256:38bfbd18dcc69eeb589811e77fae552fa923067fdfbb2e171c9eac749885f210 \
--hash=sha256:3afcbddb4488ac950ce1147e7580178b333a29cd43524c689b2e3543a080a2c8 \
--hash=sha256:42ab8b9e7dc1ebe248e55f54eea5307b6ab15011a7883367af48dd781d1312e4 \
--hash=sha256:441cab2166607c82e6d7a8683779cb89ba0f475b983c7e4ab88f3668e268c143 \
--hash=sha256:4bd0e3278126bc882d10414436e58fa3f1eca0aa88b534fcbf80ed47e854f46c \
--hash=sha256:4df25a28bd22c990b22129d3c637fd5c3be4b7c94f975dca909d8bab3309b694 \
--hash=sha256:5cd7a30970c29d9768a7164f564d1fbf2842bfc77b7d114a99bc32703ce0bf48 \
--hash=sha256:6e4497e5142f325a5423ff5fda2fff5b5d953da028637ff7c704378c8c284ea7 \
--hash=sha256:6faf86ef7717891195ae0537e48da7524d30bc3b828b30c9b115d04ea42f076f \
--hash=sha256:954ff69d2d1bf666b794c1d7216e0a746c9d9289096a64ab3355a17c7c59db54 \
--hash=sha256:9b878c671655864af59c108c20e4da1e796154bd78c0ed6bb02bc41c84625686 \
--hash=sha256:b901b423c91281a974f6cd1c36f5c6c523e665b5a6d5e80fcb2334e14670eefd \
--hash=sha256:c8b3cbc636a87a89b770c6afc999baa6bcbb01691b5ccbbc1b1791c7c0a07540 \
--hash=sha256:e096b062d2efdea57f972d232358cb068413dc54eec4f24158bcbb5cb8bddfd8
# via symforce
six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
# via skymarshal
skymarshal==0.8.0 \
--hash=sha256:4f7293b060761865a2b065f040226f4329989e4d2fb5c9e1d805bfbc43a796cd \
--hash=sha256:56516eb8854ecbc23bd2eb477c20a8ce90a143cfe82c04bfc46b1dba04eb1a6b
# via symforce
symforce-sym==0.8.0 \
--hash=sha256:21fdd4d3c4ce1b61509ed04aa630423c8246f0aea9065ed9e15878e635267a60 \
--hash=sha256:4c34161dd43e3ac34a25ceeff5ec7841dcc29eb3c21d363888b930fdea319e01
# via symforce
symforce==0.8.0 \
--hash=sha256:705f10b2f6de2f2a56b1f30c77dd1659caf19d65caaaf1ef81ff8a9287bccbd8 \
--hash=sha256:7c35bbcb670064d22715dc82ab16c8c2fb7e0f72ef0e9b332980f393bebcb646 \
--hash=sha256:807ff68c338a3639b84277b242aa3a687a7a32dfbbff0dd86999b5a9df6be01e \
--hash=sha256:8a1c790ce76fb0c052fac1c4275135ea59351ec1dbc011893845d0a16325a11f \
--hash=sha256:8cdcd41e3977ca77eb2baa9023e986561e4f7a59ad10de01471dce6d25c3eff2 \
--hash=sha256:ab450626f0fdacb1c8429436fcbdcc82f8ca69d52dd7fa2faab39a1bae2a3667 \
--hash=sha256:c76e4f45d51076a9a6c5b13cbce40ca9d515a9d2315c9975d06f5900b5ccffb9 \
--hash=sha256:ce5af75e93bb1228ee86ff85895c7f8564812a7b86409c2cfe14bcde15bb5a06 \
--hash=sha256:d5dad266372a2146389e7f86f139a9c611e268f4f854794fe7305a14f3e74046 \
--hash=sha256:da539fa0819b26f464757a8e72062357c53778e1955cf00ac303715afe50443c \
--hash=sha256:f05541e2ea40cca69d54a58d0eea1fd84bae10f62ed57841f390f431d7022fc3 \
--hash=sha256:fe6f7eda1cae299a9e53e56f9706ae1fa9bb9823f07c81e7aa382ee0cd7ee47b
# via -r requirements.in
sympy==1.11.1 \
--hash=sha256:938f984ee2b1e8eae8a07b884c8b7a1146010040fccddc6539c54f401c8f6fcf \
--hash=sha256:e32380dce63cb7c0108ed525570092fd45168bdae2faa17e528221ef72e88658
# via symforce
tomli==2.0.1 \
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
--hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f
# via black
Loading

0 comments on commit c28c83c

Please sign in to comment.