Skip to content

Commit ea716f9

Browse files
authored
Upgrade to new gen-exec client (#208)
* Revert "Revert using new gen-exec client (#206)" This reverts commit 7d0b4f0. * Undo print statements
1 parent 10db868 commit ea716f9

File tree

406 files changed

+393
-63881
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

406 files changed

+393
-63881
lines changed

poetry.lock

Lines changed: 130 additions & 147 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ authors = []
88
python = "^3.8"
99
pydantic = "^1.9.2"
1010
typer = {extras = ["all"], version = "^0.6.1"}
11-
fern-fern-generator-exec = {version = "0.3.0", source = "fern-dev"}
11+
fern-fern-generator-exec-sdk = {version = "0.0.185", source = "fern-prod"}
1212
fern-fern-ir-model = {version = "0.0.1284", source = "fern-prod"}
1313

1414
[tool.poetry.dev-dependencies]

requirements.txt

Lines changed: 29 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,14 @@
1-
--extra-index-url https://pypi-dev.buildwithfern.com
21
--extra-index-url https://pypi.buildwithfern.com
32

4-
certifi==2022.12.7 ; python_version >= "3.8" and python_version < "4" \
3+
anyio==3.6.2 ; python_version >= "3.8" and python_version < "4.0" \
4+
--hash=sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421 \
5+
--hash=sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3
6+
backports-cached-property==1.0.2 ; python_version >= "3.8" and python_version < "4.0" \
7+
--hash=sha256:9306f9eed6ec55fd156ace6bc1094e2c86fae5fb2bf07b6a9c00745c656e75dd \
8+
--hash=sha256:baeb28e1cd619a3c9ab8941431fe34e8490861fb998c6c4590693d50171db0cc
9+
certifi==2022.12.7 ; python_version >= "3.8" and python_version < "4.0" \
510
--hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \
611
--hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
7-
charset-normalizer==3.1.0 ; python_version >= "3.8" and python_version < "4" \
8-
--hash=sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6 \
9-
--hash=sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1 \
10-
--hash=sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e \
11-
--hash=sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373 \
12-
--hash=sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62 \
13-
--hash=sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230 \
14-
--hash=sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be \
15-
--hash=sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c \
16-
--hash=sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0 \
17-
--hash=sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448 \
18-
--hash=sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f \
19-
--hash=sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649 \
20-
--hash=sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d \
21-
--hash=sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0 \
22-
--hash=sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706 \
23-
--hash=sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a \
24-
--hash=sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59 \
25-
--hash=sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23 \
26-
--hash=sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5 \
27-
--hash=sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb \
28-
--hash=sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e \
29-
--hash=sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e \
30-
--hash=sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c \
31-
--hash=sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28 \
32-
--hash=sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d \
33-
--hash=sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41 \
34-
--hash=sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974 \
35-
--hash=sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce \
36-
--hash=sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f \
37-
--hash=sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1 \
38-
--hash=sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d \
39-
--hash=sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8 \
40-
--hash=sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017 \
41-
--hash=sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31 \
42-
--hash=sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7 \
43-
--hash=sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8 \
44-
--hash=sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e \
45-
--hash=sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14 \
46-
--hash=sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd \
47-
--hash=sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d \
48-
--hash=sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795 \
49-
--hash=sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b \
50-
--hash=sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b \
51-
--hash=sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b \
52-
--hash=sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203 \
53-
--hash=sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f \
54-
--hash=sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19 \
55-
--hash=sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1 \
56-
--hash=sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a \
57-
--hash=sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac \
58-
--hash=sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9 \
59-
--hash=sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0 \
60-
--hash=sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137 \
61-
--hash=sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f \
62-
--hash=sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6 \
63-
--hash=sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5 \
64-
--hash=sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909 \
65-
--hash=sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f \
66-
--hash=sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0 \
67-
--hash=sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324 \
68-
--hash=sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755 \
69-
--hash=sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb \
70-
--hash=sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854 \
71-
--hash=sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c \
72-
--hash=sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60 \
73-
--hash=sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84 \
74-
--hash=sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0 \
75-
--hash=sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b \
76-
--hash=sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1 \
77-
--hash=sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531 \
78-
--hash=sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1 \
79-
--hash=sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11 \
80-
--hash=sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326 \
81-
--hash=sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df \
82-
--hash=sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab
8312
click==8.1.3 ; python_version >= "3.8" and python_version < "4.0" \
8413
--hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \
8514
--hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48
@@ -89,13 +18,22 @@ colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0" \
8918
commonmark==0.9.1 ; python_version >= "3.8" and python_version < "4.0" \
9019
--hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \
9120
--hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9
92-
fern-fern-generator-exec==0.3.0 ; python_version >= "3.8" and python_version < "4.0" \
93-
--hash=sha256:02406f828b38c6ed176a26bcd19344c53ac27b76ea79ebefb04ffecc594baf69 \
94-
--hash=sha256:f894c25007e051c8ccb627ac8e9616b35a1d6342a0426a51ffe9f13063f1c57c
21+
fern-fern-generator-exec-sdk==0.0.185 ; python_version >= "3.8" and python_version < "4.0" \
22+
--hash=sha256:52e70eb2ee35b705b8c8cb2f2cdf8ab90aa844c726e3a77c2175dfb13476591b \
23+
--hash=sha256:79c6c1bdd39e053ca1e9e5d524793c47042ca28f38cfb39dba96c73deadeefac
9524
fern-fern-ir-model==0.0.1284 ; python_version >= "3.8" and python_version < "4.0" \
9625
--hash=sha256:52dc7eca451aa4676a48716dded67b75e45f2bf62d46eff1432bc3727566e100 \
9726
--hash=sha256:f46b71926de667378aa4e16b2ec68b7702d949854b38beea3e5d41b2b1c85043
98-
idna==3.4 ; python_version >= "3.8" and python_version < "4" \
27+
h11==0.14.0 ; python_version >= "3.8" and python_version < "4.0" \
28+
--hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \
29+
--hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761
30+
httpcore==0.16.3 ; python_version >= "3.8" and python_version < "4.0" \
31+
--hash=sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb \
32+
--hash=sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0
33+
httpx==0.23.3 ; python_version >= "3.8" and python_version < "4.0" \
34+
--hash=sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9 \
35+
--hash=sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6
36+
idna==3.4 ; python_version >= "3.8" and python_version < "4.0" \
9937
--hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \
10038
--hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2
10139
pydantic==1.10.7 ; python_version >= "3.8" and python_version < "4.0" \
@@ -138,27 +76,24 @@ pydantic==1.10.7 ; python_version >= "3.8" and python_version < "4.0" \
13876
pygments==2.14.0 ; python_version >= "3.8" and python_version < "4.0" \
13977
--hash=sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297 \
14078
--hash=sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717
141-
requests==2.28.2 ; python_version >= "3.8" and python_version < "4" \
142-
--hash=sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa \
143-
--hash=sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf
79+
rfc3986[idna2008]==1.5.0 ; python_version >= "3.8" and python_version < "4.0" \
80+
--hash=sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835 \
81+
--hash=sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97
14482
rich==12.6.0 ; python_version >= "3.8" and python_version < "4.0" \
14583
--hash=sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e \
14684
--hash=sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0
14785
shellingham==1.5.0.post1 ; python_version >= "3.8" and python_version < "4.0" \
14886
--hash=sha256:368bf8c00754fd4f55afb7bbb86e272df77e4dc76ac29dbcbb81a59e9fc15744 \
14987
--hash=sha256:823bc5fb5c34d60f285b624e7264f4dda254bc803a3774a147bf99c0e3004a28
88+
sniffio==1.3.0 ; python_version >= "3.8" and python_version < "4.0" \
89+
--hash=sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101 \
90+
--hash=sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384
15091
typer[all]==0.6.1 ; python_version >= "3.8" and python_version < "4.0" \
15192
--hash=sha256:2d5720a5e63f73eaf31edaa15f6ab87f35f0690f8ca233017d7d23d743a91d73 \
15293
--hash=sha256:54b19e5df18654070a82f8c2aa1da456a4ac16a2a83e6dcd9f170e291c56338e
153-
types-requests==2.28.11.16 ; python_version >= "3.8" and python_version < "4.0" \
154-
--hash=sha256:9d4002056df7ebc4ec1f28fd701fba82c5c22549c4477116cb2656aa30ace6db \
155-
--hash=sha256:a86921028335fdcc3aaf676c9d3463f867db6af2303fc65aa309b13ae1e6dd53
156-
types-urllib3==1.26.25.9 ; python_version >= "3.8" and python_version < "4.0" \
157-
--hash=sha256:160727879bdbe52f11f5feeca092a473f38d68ed3be88abb461b59cda40fb9bc \
158-
--hash=sha256:b327d360ba4a9edd80ea82f5990ba19e76175a20b5b64be4b4813d9a1c424caa
94+
types-backports==0.1.3 ; python_version >= "3.8" and python_version < "4.0" \
95+
--hash=sha256:dafcd61848081503e738a7768872d1dd6c018401b4d2a1cfb608ea87ec9864b9 \
96+
--hash=sha256:f4b7206c073df88d6200891e3d27506185fd60cda66fb289737b2fa92c0010cf
15997
typing-extensions==4.5.0 ; python_version >= "3.8" and python_version < "4.0" \
16098
--hash=sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb \
16199
--hash=sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4
162-
urllib3==1.26.15 ; python_version >= "3.8" and python_version < "4" \
163-
--hash=sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305 \
164-
--hash=sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42

src/fern_python/cli/abstract_generator.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
from __future__ import annotations
22

33
from abc import ABC, abstractmethod
4+
from typing import Optional
45

56
import fern.ir.pydantic as ir_types
6-
from generator_exec.resources import GeneratorConfig
7-
from generator_exec.resources.config import GeneratorPublishConfig
7+
from fern.generator_exec.sdk.resources import GeneratorConfig
8+
from fern.generator_exec.sdk.resources.config import (
9+
GeneratorPublishConfig,
10+
GithubOutputMode,
11+
)
812

913
from fern_python.codegen.project import Project, PublishConfig
1014
from fern_python.generator_exec_wrapper import GeneratorExecWrapper
@@ -25,6 +29,7 @@ def generate_project(
2529
publish=lambda publish: PublishConfig(
2630
package_name=publish.registries_v_2.pypi.package_name, package_version=publish.version
2731
),
32+
github=self._get_github_publish_config,
2833
)
2934
with Project(
3035
filepath=generator_config.output.path,
@@ -37,13 +42,25 @@ def generate_project(
3742
)
3843
generator_config.output.mode.visit(
3944
download_files=lambda: None,
45+
github=lambda x: None,
4046
publish=lambda publish_config: self._publish(
4147
generator_exec_wrapper=generator_exec_wrapper,
4248
publish_config=publish_config,
4349
generator_config=generator_config,
4450
),
4551
)
4652

53+
def _get_github_publish_config(self, output_mode: GithubOutputMode) -> Optional[PublishConfig]:
54+
if output_mode.publish_info is None:
55+
return None
56+
publish_info_union = output_mode.publish_info.get_as_union()
57+
if publish_info_union.type != "pypi":
58+
raise RuntimeError("Github publishi info is not pypi")
59+
return PublishConfig(
60+
package_name=publish_info_union.package_name,
61+
package_version=output_mode.version,
62+
)
63+
4764
def _publish(
4865
self,
4966
generator_exec_wrapper: GeneratorExecWrapper,

src/fern_python/cli/generator_cli.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import fern.ir.pydantic as ir_types
2-
from generator_exec.resources.config import GeneratorConfig
3-
from generator_exec.resources.logging import (
2+
from fern.generator_exec.sdk.resources.config import GeneratorConfig
3+
from fern.generator_exec.sdk.resources.logging import (
44
ErrorExitStatusUpdate,
55
ExitStatusUpdate,
66
GeneratorUpdate,
77
InitUpdateV2,
88
RegistryType,
9+
SuccessfulStatusUpdate,
910
)
1011

1112
from fern_python.generator_exec_wrapper import GeneratorExecWrapper
@@ -29,6 +30,7 @@ def run(self) -> None:
2930
InitUpdateV2(
3031
publishing_to_registry=config.output.mode.visit(
3132
publish=lambda x: RegistryType.PYPI,
33+
github=lambda x: None,
3234
download_files=lambda: None,
3335
)
3436
)
@@ -39,7 +41,9 @@ def run(self) -> None:
3941
generator_exec_wrapper=generator_exec_wrapper, ir=ir, generator_config=config
4042
)
4143
generator_exec_wrapper.send_update(
42-
GeneratorUpdate.factory.exit_status_update(ExitStatusUpdate.factory.successful())
44+
GeneratorUpdate.factory.exit_status_update(
45+
ExitStatusUpdate.factory.successful(SuccessfulStatusUpdate())
46+
)
4347
)
4448
except Exception as e:
4549
generator_exec_wrapper.send_update(

src/fern_python/cli/publisher.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import subprocess
22
from typing import List
33

4-
from generator_exec.resources import logging
5-
from generator_exec.resources.config import GeneratorConfig, GeneratorPublishConfig
4+
from fern.generator_exec.sdk.resources import logging
5+
from fern.generator_exec.sdk.resources.config import (
6+
GeneratorConfig,
7+
GeneratorPublishConfig,
8+
)
69

710
from fern_python.generator_exec_wrapper import GeneratorExecWrapper
811

@@ -13,6 +16,7 @@ class Publisher:
1316

1417
def __init__(
1518
self,
19+
*,
1620
generator_exec_wrapper: GeneratorExecWrapper,
1721
publish_config: GeneratorPublishConfig,
1822
generator_config: GeneratorConfig,
@@ -48,14 +52,18 @@ def publish_project(
4852
],
4953
safe_command="poetry config http-basic.fern <creds>",
5054
)
55+
56+
publish_command = [
57+
"poetry",
58+
"publish",
59+
"--build",
60+
"--repository",
61+
self._poetry_repo_name,
62+
]
63+
if self._generator_config.dry_run:
64+
publish_command.append("--dry-run")
5165
self._run_command(
52-
command=[
53-
"poetry",
54-
"publish",
55-
"--build",
56-
"--repository",
57-
self._poetry_repo_name,
58-
],
66+
command=publish_command,
5967
safe_command="poetry publish",
6068
)
6169

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from abc import ABC, abstractmethod
2-
from typing import Tuple
2+
from typing import List, Tuple
33

44
import fern.ir.pydantic as ir_types
5-
from generator_exec.resources import GeneratorConfig
5+
from fern.generator_exec.sdk.resources import GeneratorConfig
66

77
from fern_python.codegen import ExportStrategy, Filepath
88

@@ -17,18 +17,24 @@ def __init__(self, ir: ir_types.IntermediateRepresentation, generator_config: Ge
1717
def generate_filepath_prefix(self) -> Tuple[Filepath.DirectoryFilepathPart, ...]:
1818
return self._generator_config.output.mode.visit(
1919
download_files=lambda: EMPTY_DIRECTORIES,
20-
publish=lambda x: (
21-
Filepath.DirectoryFilepathPart(
22-
module_name=self._ir.api_name.snake_case.unsafe_name,
23-
export_strategy=ExportStrategy(export_all=True),
24-
),
25-
Filepath.DirectoryFilepathPart(
26-
module_name=self._get_generator_name_for_containing_folder(),
27-
export_strategy=ExportStrategy(export_all=True),
28-
),
20+
publish=lambda x: self._get_filepath_prefix_for_published_package(),
21+
github=lambda x: self._get_filepath_prefix_for_published_package(),
22+
)
23+
24+
def _get_filepath_prefix_for_published_package(self) -> Tuple[Filepath.DirectoryFilepathPart, ...]:
25+
return (
26+
Filepath.DirectoryFilepathPart(
27+
module_name=self._ir.api_name.snake_case.unsafe_name,
28+
export_strategy=ExportStrategy(export_all=True),
2929
),
30+
) + tuple(
31+
Filepath.DirectoryFilepathPart(
32+
module_name=folder_name,
33+
export_strategy=ExportStrategy(export_all=True),
34+
)
35+
for folder_name in self._get_folders_inside_src()
3036
)
3137

3238
@abstractmethod
33-
def _get_generator_name_for_containing_folder(self) -> str:
39+
def _get_folders_inside_src(self) -> List[str]:
3440
...

0 commit comments

Comments
 (0)