From 25875ba67093a15e3bbc6687fe5ed5d43de9eb9d Mon Sep 17 00:00:00 2001 From: nvollroth <100927440+nvollroth@users.noreply.github.com> Date: Fri, 8 Jul 2022 13:37:10 +0200 Subject: [PATCH 1/6] The default value of the code and the default value of the documentation will be showed, now. --- .../gui/src/features/packageData/model/APIJsonData.ts | 1 + .../features/packageData/model/PythonPackageBuilder.ts | 1 + .../gui/src/features/packageData/model/PythonParameter.ts | 4 ++++ .../features/packageData/selectionView/ParameterView.tsx | 8 ++++++-- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/api-editor/gui/src/features/packageData/model/APIJsonData.ts b/api-editor/gui/src/features/packageData/model/APIJsonData.ts index ca93db6c9..86ef27963 100644 --- a/api-editor/gui/src/features/packageData/model/APIJsonData.ts +++ b/api-editor/gui/src/features/packageData/model/APIJsonData.ts @@ -68,6 +68,7 @@ export interface PythonParameterJson { docstring: { type: Optional; description: Optional; + default_value: Optional; }; type: object; // TODO parse type } diff --git a/api-editor/gui/src/features/packageData/model/PythonPackageBuilder.ts b/api-editor/gui/src/features/packageData/model/PythonPackageBuilder.ts index 9c3f74027..a395d33d3 100644 --- a/api-editor/gui/src/features/packageData/model/PythonPackageBuilder.ts +++ b/api-editor/gui/src/features/packageData/model/PythonPackageBuilder.ts @@ -159,6 +159,7 @@ const parsePythonParameterJson = function ( parameterJson.docstring.type ?? '', parameterJson.docstring.description ?? '', parameterJson.type, + parameterJson.docstring.default_value ?? '', ); idToDeclaration.set(parameterJson.id, result); return result; diff --git a/api-editor/gui/src/features/packageData/model/PythonParameter.ts b/api-editor/gui/src/features/packageData/model/PythonParameter.ts index 0bcca3395..de0aa03c0 100644 --- a/api-editor/gui/src/features/packageData/model/PythonParameter.ts +++ b/api-editor/gui/src/features/packageData/model/PythonParameter.ts @@ -29,6 +29,7 @@ export class PythonParameter extends PythonDeclaration { readonly typeInDocs: string = '', readonly description: string = '', readonly type: object = {}, + readonly defaultValueInDocs: Optional = null ) { super(); @@ -85,6 +86,7 @@ export class PythonParameter extends PythonDeclaration { docstring: { type: this.typeInDocs, description: this.description, + default_value: this.defaultValueInDocs }, type: this.type, }; @@ -100,6 +102,8 @@ export class PythonParameter extends PythonDeclaration { this.isPublic, this.typeInDocs, this.description, + undefined, + this.defaultValueInDocs, ); result.containingFunction = this.containingFunction; return result; diff --git a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx index 5f1d8cd79..503f93d8f 100644 --- a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx +++ b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx @@ -39,12 +39,16 @@ export const ParameterView: React.FC = function ({ pythonPar )} - {pythonParameter.defaultValue && ( + {pythonParameter && ( Default Value - {pythonParameter.defaultValue} + + Code: {pythonParameter.defaultValue} + Documentation: {pythonParameter.defaultValueInDocs} + + )} From 9c672b38f4d3df54ec3b1d8a9ef7583480d22779 Mon Sep 17 00:00:00 2001 From: lars-reimann Date: Fri, 8 Jul 2022 11:53:38 +0000 Subject: [PATCH 2/6] style: apply automatic fixes of linters --- .../gui/src/features/packageData/model/PythonParameter.ts | 4 ++-- .../src/features/packageData/selectionView/ParameterView.tsx | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/api-editor/gui/src/features/packageData/model/PythonParameter.ts b/api-editor/gui/src/features/packageData/model/PythonParameter.ts index de0aa03c0..58963d34d 100644 --- a/api-editor/gui/src/features/packageData/model/PythonParameter.ts +++ b/api-editor/gui/src/features/packageData/model/PythonParameter.ts @@ -29,7 +29,7 @@ export class PythonParameter extends PythonDeclaration { readonly typeInDocs: string = '', readonly description: string = '', readonly type: object = {}, - readonly defaultValueInDocs: Optional = null + readonly defaultValueInDocs: Optional = null, ) { super(); @@ -86,7 +86,7 @@ export class PythonParameter extends PythonDeclaration { docstring: { type: this.typeInDocs, description: this.description, - default_value: this.defaultValueInDocs + default_value: this.defaultValueInDocs, }, type: this.type, }; diff --git a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx index a7a70f6f9..eb2dee0e9 100644 --- a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx +++ b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx @@ -48,7 +48,6 @@ export const ParameterView: React.FC = function ({ pythonPar Code: {pythonParameter.defaultValue} Documentation: {pythonParameter.defaultValueInDocs} - )} From 374691db1614a4b844704ede4fc75520b16bafb7 Mon Sep 17 00:00:00 2001 From: nvollroth <100927440+nvollroth@users.noreply.github.com> Date: Fri, 8 Jul 2022 15:06:08 +0200 Subject: [PATCH 3/6] Missing values are replaced by their corresponding messages. --- .../selectionView/ParameterView.tsx | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx index 503f93d8f..5a08f0840 100644 --- a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx +++ b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx @@ -1,7 +1,7 @@ -import { Box, Heading, Stack, Text as ChakraText, useColorModeValue } from '@chakra-ui/react'; +import {Box, Heading, HStack, Stack, Text as ChakraText, useColorModeValue} from '@chakra-ui/react'; import React from 'react'; -import { PythonParameter } from '../model/PythonParameter'; -import { ParameterNode } from './ParameterNode'; +import {PythonParameter} from '../model/PythonParameter'; +import {ParameterNode} from './ParameterNode'; import { BarElement, CategoryScale, @@ -12,9 +12,9 @@ import { Title, Tooltip, } from 'chart.js'; -import { Bar } from 'react-chartjs-2'; -import { useAppSelector } from '../../../app/hooks'; -import { selectUsages } from '../../usages/usageSlice'; +import {Bar} from 'react-chartjs-2'; +import {useAppSelector} from '../../../app/hooks'; +import {selectUsages} from '../../usages/usageSlice'; ChartJS.register(CategoryScale, PointElement, LineElement, LinearScale, BarElement, Title, Tooltip); @@ -22,13 +22,13 @@ interface ParameterViewProps { pythonParameter: PythonParameter; } -export const ParameterView: React.FC = function ({ pythonParameter }) { +export const ParameterView: React.FC = function ({pythonParameter}) { const usages = useAppSelector(selectUsages); const parameterUsages = usages.valueUsages.get(pythonParameter.id); return ( - + {pythonParameter.typeInDocs && ( @@ -44,10 +44,32 @@ export const ParameterView: React.FC = function ({ pythonPar Default Value - - Code: {pythonParameter.defaultValue} - Documentation: {pythonParameter.defaultValueInDocs} - + + {pythonParameter.defaultValue ? + ( + + Code: {pythonParameter.defaultValue} + + {pythonParameter.defaultValueInDocs ? + ( + Documentation: {pythonParameter.defaultValueInDocs} + ) + : + ( + + Documentation: + The documentation does not specify a default + value. + + )} + + + ) + : + ( + The parameter is required. + )} )} @@ -57,7 +79,7 @@ export const ParameterView: React.FC = function ({ pythonPar Usages - + )} @@ -67,7 +89,7 @@ export const ParameterView: React.FC = function ({ pythonPar Most Common Values - + )} @@ -79,7 +101,7 @@ interface CustomBarChartProps { parameterUsages: Map; } -const CustomBarChart: React.FC = function ({ parameterUsages }) { +const CustomBarChart: React.FC = function ({parameterUsages}) { const gridColor = useColorModeValue('#BBB', '#555'); const textColor = useColorModeValue('#000', '#FFF'); @@ -136,7 +158,7 @@ const CustomBarChart: React.FC = function ({ parameterUsage ], }; - return ; + return ; }; const isStringifiedLiteral = function (value: string): boolean { @@ -155,7 +177,7 @@ const isStringifiedLiteral = function (value: string): boolean { return !Number.isNaN(Number.parseFloat(value)); }; -const UsageSum: React.FC = function ({ parameterUsages }) { +const UsageSum: React.FC = function ({parameterUsages}) { let usage = 0; parameterUsages.forEach((value) => { @@ -164,3 +186,5 @@ const UsageSum: React.FC = function ({ parameterUsages }) { return {usage}; }; + + From 281dae6e671b961f9cb0a503c0c75b2ee6b06867 Mon Sep 17 00:00:00 2001 From: nvollroth Date: Fri, 8 Jul 2022 13:10:55 +0000 Subject: [PATCH 4/6] style: apply automatic fixes of linters --- .../selectionView/ParameterView.tsx | 76 +++++++++---------- 1 file changed, 35 insertions(+), 41 deletions(-) diff --git a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx index 5a08f0840..02df143f8 100644 --- a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx +++ b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx @@ -1,7 +1,7 @@ -import {Box, Heading, HStack, Stack, Text as ChakraText, useColorModeValue} from '@chakra-ui/react'; +import { Box, Heading, HStack, Stack, Text as ChakraText, useColorModeValue } from '@chakra-ui/react'; import React from 'react'; -import {PythonParameter} from '../model/PythonParameter'; -import {ParameterNode} from './ParameterNode'; +import { PythonParameter } from '../model/PythonParameter'; +import { ParameterNode } from './ParameterNode'; import { BarElement, CategoryScale, @@ -12,9 +12,9 @@ import { Title, Tooltip, } from 'chart.js'; -import {Bar} from 'react-chartjs-2'; -import {useAppSelector} from '../../../app/hooks'; -import {selectUsages} from '../../usages/usageSlice'; +import { Bar } from 'react-chartjs-2'; +import { useAppSelector } from '../../../app/hooks'; +import { selectUsages } from '../../usages/usageSlice'; ChartJS.register(CategoryScale, PointElement, LineElement, LinearScale, BarElement, Title, Tooltip); @@ -22,13 +22,13 @@ interface ParameterViewProps { pythonParameter: PythonParameter; } -export const ParameterView: React.FC = function ({pythonParameter}) { +export const ParameterView: React.FC = function ({ pythonParameter }) { const usages = useAppSelector(selectUsages); const parameterUsages = usages.valueUsages.get(pythonParameter.id); return ( - + {pythonParameter.typeInDocs && ( @@ -45,32 +45,28 @@ export const ParameterView: React.FC = function ({pythonPara Default Value - {pythonParameter.defaultValue ? - ( - - Code: {pythonParameter.defaultValue} - - {pythonParameter.defaultValueInDocs ? - ( - Documentation: {pythonParameter.defaultValueInDocs} - ) - : - ( - - Documentation: - The documentation does not specify a default - value. - - )} - - - ) - : - ( - The parameter is required. - )} - + {pythonParameter.defaultValue ? ( + + Code: {pythonParameter.defaultValue} + + {pythonParameter.defaultValueInDocs ? ( + + Documentation: {pythonParameter.defaultValueInDocs} + + ) : ( + + Documentation: + + The documentation does not specify a default value. + + + )} + + ) : ( + + The parameter is required. + + )} )} @@ -79,7 +75,7 @@ export const ParameterView: React.FC = function ({pythonPara Usages - + )} @@ -89,7 +85,7 @@ export const ParameterView: React.FC = function ({pythonPara Most Common Values - + )} @@ -101,7 +97,7 @@ interface CustomBarChartProps { parameterUsages: Map; } -const CustomBarChart: React.FC = function ({parameterUsages}) { +const CustomBarChart: React.FC = function ({ parameterUsages }) { const gridColor = useColorModeValue('#BBB', '#555'); const textColor = useColorModeValue('#000', '#FFF'); @@ -158,7 +154,7 @@ const CustomBarChart: React.FC = function ({parameterUsages ], }; - return ; + return ; }; const isStringifiedLiteral = function (value: string): boolean { @@ -177,7 +173,7 @@ const isStringifiedLiteral = function (value: string): boolean { return !Number.isNaN(Number.parseFloat(value)); }; -const UsageSum: React.FC = function ({parameterUsages}) { +const UsageSum: React.FC = function ({ parameterUsages }) { let usage = 0; parameterUsages.forEach((value) => { @@ -186,5 +182,3 @@ const UsageSum: React.FC = function ({parameterUsages}) { return {usage}; }; - - From 391117046683951ca2eb8562342993884ea855ac Mon Sep 17 00:00:00 2001 From: Lars Reimann Date: Fri, 8 Jul 2022 15:35:48 +0200 Subject: [PATCH 5/6] fix(gui): clone method of parameter --- .../gui/src/features/packageData/model/PythonParameter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-editor/gui/src/features/packageData/model/PythonParameter.ts b/api-editor/gui/src/features/packageData/model/PythonParameter.ts index 58963d34d..7839b66b6 100644 --- a/api-editor/gui/src/features/packageData/model/PythonParameter.ts +++ b/api-editor/gui/src/features/packageData/model/PythonParameter.ts @@ -102,7 +102,7 @@ export class PythonParameter extends PythonDeclaration { this.isPublic, this.typeInDocs, this.description, - undefined, + this.type, this.defaultValueInDocs, ); result.containingFunction = this.containingFunction; From 62f263be49508922bcfbf128d9fa122b363a6852 Mon Sep 17 00:00:00 2001 From: Lars Reimann Date: Fri, 8 Jul 2022 15:41:06 +0200 Subject: [PATCH 6/6] fix(gui): merge two paragraphs --- .../features/packageData/selectionView/ParameterView.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx index 02df143f8..17f43073b 100644 --- a/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx +++ b/api-editor/gui/src/features/packageData/selectionView/ParameterView.tsx @@ -55,9 +55,11 @@ export const ParameterView: React.FC = function ({ pythonPar ) : ( - Documentation: - - The documentation does not specify a default value. + + Documentation:{' '} + + The documentation does not specify a default value. + )}