MCPcopy Index your code
hub / github.com/github/copilot-sdk / removeRequiredAnyDefaultsForPython

Function removeRequiredAnyDefaultsForPython

scripts/codegen/python.ts:1142–1178  ·  view source on GitHub ↗
(
    code: string,
    definitions: Record<string, JSONSchema7>,
    definitionCollections: DefinitionCollections
)

Source from the content-addressed store, hash-verified

1140}
1141
1142function removeRequiredAnyDefaultsForPython(
1143 code: string,
1144 definitions: Record<string, JSONSchema7>,
1145 definitionCollections: DefinitionCollections
1146): string {
1147 const requiredFieldsByClass = new Map<string, Set<string>>();
1148
1149 for (const [definitionName, schema] of Object.entries(definitions)) {
1150 const resolved = resolveObjectSchema(schema, definitionCollections) ?? resolveSchema(schema, definitionCollections);
1151 if (!resolved || !isObjectSchema(resolved) || !resolved.properties || !Array.isArray(resolved.required)) {
1152 continue;
1153 }
1154
1155 const requiredFields = resolved.required.map(toSnakeCase);
1156 for (const className of new Set([definitionName, toPascalCase(definitionName)])) {
1157 const fields = requiredFieldsByClass.get(className) ?? new Set<string>();
1158 for (const field of requiredFields) {
1159 fields.add(field);
1160 }
1161 requiredFieldsByClass.set(className, fields);
1162 }
1163 }
1164
1165 const classBlockRe = /(@dataclass\r?\nclass\s+(\w+):[\s\S]*?)(?=^@dataclass|^class\s+\w|^def\s+\w|\Z)/gm;
1166 return code.replace(classBlockRe, (block: string, _classPrefix: string, className: string) => {
1167 const requiredFields = requiredFieldsByClass.get(className);
1168 if (!requiredFields) {
1169 return block;
1170 }
1171
1172 let updatedBlock = block;
1173 for (const field of requiredFields) {
1174 updatedBlock = updatedBlock.replace(new RegExp(`^( ${escapeRegExp(field)}: Any) = None$`, "m"), "$1");
1175 }
1176 return updatedBlock;
1177 });
1178}
1179
1180/**
1181 * Remove locally-emitted Enum class definitions whose name already comes from

Callers 1

generateRpcFunction · 0.85

Calls 8

resolveObjectSchemaFunction · 0.85
resolveSchemaFunction · 0.85
isObjectSchemaFunction · 0.85
toPascalCaseFunction · 0.70
escapeRegExpFunction · 0.70
getMethod · 0.45
addMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…