projen
Version:
CDK for software projects
72 lines • 8.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SetupPy = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const file_1 = require("../file");
/**
* Python packaging script where package metadata can be placed.
*/
class SetupPy extends file_1.FileBase {
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.SetupPy", version: "0.103.12" };
setupConfig;
constructor(project, options) {
super(project, "setup.py");
this.setupConfig = {
name: project.name,
packages: options.packages,
python_requires: ">=3.8",
classifiers: [
"Intended Audience :: Developers",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
],
...(options ? this.renameFields(options) : []),
};
}
synthesizeContent(resolver) {
const lines = [
...(this.marker ? [`# ${this.marker}`] : []),
"",
"import json",
"from setuptools import setup",
"",
"kwargs = json.loads(",
' """',
JSON.stringify(this.setupConfig, null, 4),
'"""',
")",
"",
"setup(**kwargs)",
];
return `${resolver.resolve(lines).join("\n")}\n`;
}
// modify some key names since JSII interfaces require fields to be camelCase
renameFields(options) {
const obj = {};
for (const [key, value] of Object.entries(options)) {
switch (key) {
case "authorName":
obj.author = value;
break;
case "authorEmail":
obj.author_email = value;
break;
case "homepage":
obj.url = value;
break;
case "additionalOptions":
Object.assign(obj, this.renameFields(value));
break;
default:
obj[key] = value;
}
}
return obj;
}
}
exports.SetupPy = SetupPy;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBweS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9weXRob24vc2V0dXBweS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0Esa0NBQW1DO0FBOERuQzs7R0FFRztBQUNILE1BQWEsT0FBUSxTQUFRLGVBQVE7O0lBQ2xCLFdBQVcsQ0FBTTtJQUVsQyxZQUFZLE9BQWdCLEVBQUUsT0FBdUI7UUFDbkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDMUIsZUFBZSxFQUFFLE9BQU87WUFDeEIsV0FBVyxFQUFFO2dCQUNYLGlDQUFpQztnQkFDakMsNkNBQTZDO2dCQUM3Qyx1Q0FBdUM7Z0JBQ3ZDLHVDQUF1QztnQkFDdkMsd0NBQXdDO2dCQUN4Qyx3Q0FBd0M7Z0JBQ3hDLHdDQUF3QzthQUN6QztZQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVTLGlCQUFpQixDQUFDLFFBQW1CO1FBQzdDLE1BQU0sS0FBSyxHQUFHO1lBQ1osR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVDLEVBQUU7WUFDRixhQUFhO1lBQ2IsOEJBQThCO1lBQzlCLEVBQUU7WUFDRixzQkFBc0I7WUFDdEIsU0FBUztZQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLEtBQUs7WUFDTCxHQUFHO1lBQ0gsRUFBRTtZQUNGLGlCQUFpQjtTQUNsQixDQUFDO1FBRUYsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELDZFQUE2RTtJQUNyRSxZQUFZLENBQUMsT0FBdUI7UUFDMUMsTUFBTSxHQUFHLEdBQTJCLEVBQUUsQ0FBQztRQUN2QyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25ELFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ1osS0FBSyxZQUFZO29CQUNmLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNuQixNQUFNO2dCQUNSLEtBQUssYUFBYTtvQkFDaEIsR0FBRyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7b0JBQ3pCLE1BQU07Z0JBQ1IsS0FBSyxVQUFVO29CQUNiLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO29CQUNoQixNQUFNO2dCQUNSLEtBQUssbUJBQW1CO29CQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzdDLE1BQU07Z0JBQ1I7b0JBQ0UsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7QUFoRUgsMEJBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJUmVzb2x2ZXIgfSBmcm9tIFwiLi4vZmlsZVwiO1xuaW1wb3J0IHsgRmlsZUJhc2UgfSBmcm9tIFwiLi4vZmlsZVwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcblxuLyoqXG4gKiBGaWVsZHMgdG8gcGFzcyBpbiB0aGUgc2V0dXAoKSBmdW5jdGlvbiBvZiBzZXR1cC5weVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9kaXN0dXRpbHMvc2V0dXBzY3JpcHQuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHVwUHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHBhY2thZ2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2Ygc3VibW9kdWxlcyB0byBiZSBwYWNrYWdlZFxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQXV0aG9yJ3MgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQXV0aG9yJ3MgZS1tYWlsXG4gICAqL1xuICByZWFkb25seSBhdXRob3JFbWFpbD86IHN0cmluZztcblxuICAvKipcbiAgICogTWFudWFsbHkgc3BlY2lmeSBwYWNrYWdlIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc2hvcnQgcHJvamVjdCBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0IGxpY2Vuc2VcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UncyBIb21lcGFnZSAvIFdlYnNpdGVcbiAgICovXG4gIHJlYWRvbmx5IGhvbWVwYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgUHlQSSB0cm92ZSBjbGFzc2lmaWVycyB0aGF0IGRlc2NyaWJlIHRoZSBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcHlwaS5vcmcvY2xhc3NpZmllcnMvXG4gICAqL1xuICByZWFkb25seSBjbGFzc2lmaWVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggdG8gYWxsb3cgYW55IHZhbHVlXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsT3B0aW9ucz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIFB5dGhvbiBwYWNrYWdpbmcgc2NyaXB0IHdoZXJlIHBhY2thZ2UgbWV0YWRhdGEgY2FuIGJlIHBsYWNlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldHVwUHkgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0dXBDb25maWc6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBTZXR1cFB5T3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QsIFwic2V0dXAucHlcIik7XG5cbiAgICB0aGlzLnNldHVwQ29uZmlnID0ge1xuICAgICAgbmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgcGFja2FnZXM6IG9wdGlvbnMucGFja2FnZXMsXG4gICAgICBweXRob25fcmVxdWlyZXM6IFwiPj0zLjhcIixcbiAgICAgIGNsYXNzaWZpZXJzOiBbXG4gICAgICAgIFwiSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVyc1wiLFxuICAgICAgICBcIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzIDo6IE9ubHlcIixcbiAgICAgICAgXCJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy44XCIsXG4gICAgICAgIFwiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuOVwiLFxuICAgICAgICBcIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjEwXCIsXG4gICAgICAgIFwiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMTFcIixcbiAgICAgICAgXCJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4xMlwiLFxuICAgICAgXSxcbiAgICAgIC4uLihvcHRpb25zID8gdGhpcy5yZW5hbWVGaWVsZHMob3B0aW9ucykgOiBbXSksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChyZXNvbHZlcjogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBsaW5lcyA9IFtcbiAgICAgIC4uLih0aGlzLm1hcmtlciA/IFtgIyAke3RoaXMubWFya2VyfWBdIDogW10pLFxuICAgICAgXCJcIixcbiAgICAgIFwiaW1wb3J0IGpzb25cIixcbiAgICAgIFwiZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cFwiLFxuICAgICAgXCJcIixcbiAgICAgIFwia3dhcmdzID0ganNvbi5sb2FkcyhcIixcbiAgICAgICcgICAgXCJcIlwiJyxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2V0dXBDb25maWcsIG51bGwsIDQpLFxuICAgICAgJ1wiXCJcIicsXG4gICAgICBcIilcIixcbiAgICAgIFwiXCIsXG4gICAgICBcInNldHVwKCoqa3dhcmdzKVwiLFxuICAgIF07XG5cbiAgICByZXR1cm4gYCR7cmVzb2x2ZXIucmVzb2x2ZShsaW5lcykuam9pbihcIlxcblwiKX1cXG5gO1xuICB9XG5cbiAgLy8gbW9kaWZ5IHNvbWUga2V5IG5hbWVzIHNpbmNlIEpTSUkgaW50ZXJmYWNlcyByZXF1aXJlIGZpZWxkcyB0byBiZSBjYW1lbENhc2VcbiAgcHJpdmF0ZSByZW5hbWVGaWVsZHMob3B0aW9uczogU2V0dXBQeU9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IG9iajogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMpKSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIFwiYXV0aG9yTmFtZVwiOlxuICAgICAgICAgIG9iai5hdXRob3IgPSB2YWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImF1dGhvckVtYWlsXCI6XG4gICAgICAgICAgb2JqLmF1dGhvcl9lbWFpbCA9IHZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaG9tZXBhZ2VcIjpcbiAgICAgICAgICBvYmoudXJsID0gdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJhZGRpdGlvbmFsT3B0aW9uc1wiOlxuICAgICAgICAgIE9iamVjdC5hc3NpZ24ob2JqLCB0aGlzLnJlbmFtZUZpZWxkcyh2YWx1ZSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIG9ialtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH1cbn1cbiJdfQ==