freddyaboulton HF staff commited on
Commit
4232bbd
β€’
1 Parent(s): 7b5f13b

Upload folder using huggingface_hub

Browse files
README.md CHANGED
@@ -2,8 +2,8 @@
2
  ---
3
  tags: [gradio-custom-component,gradio-template-Fallback,time,calendar,forms]
4
  title: gradio_calendar V0.0.2
5
- colorFrom: blue
6
- colorTo: red
7
  sdk: docker
8
  pinned: false
9
  license: apache-2.0
 
2
  ---
3
  tags: [gradio-custom-component,gradio-template-Fallback,time,calendar,forms]
4
  title: gradio_calendar V0.0.2
5
+ colorFrom: purple
6
+ colorTo: yellow
7
  sdk: docker
8
  pinned: false
9
  license: apache-2.0
__pycache__/__init__.cpython-310.pyc CHANGED
Binary files a/__pycache__/__init__.cpython-310.pyc and b/__pycache__/__init__.cpython-310.pyc differ
 
__pycache__/_app.cpython-310.pyc ADDED
Binary file (692 Bytes). View file
 
__pycache__/app.cpython-310.pyc CHANGED
Binary files a/__pycache__/app.cpython-310.pyc and b/__pycache__/app.cpython-310.pyc differ
 
app.py CHANGED
@@ -1,43 +1,3 @@
1
-
2
- import gradio as gr
3
- from _app import demo as app
4
- import os
5
-
6
- _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': 'Literal["string", "datetime"]', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[..., Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
7
-
8
- abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
-
10
- with gr.Blocks(
11
- css=abs_path,
12
- theme=gr.themes.Default(
13
- font_mono=[
14
- gr.themes.GoogleFont("Inconsolata"),
15
- "monospace",
16
- ],
17
- ),
18
- ) as demo:
19
- gr.Markdown(
20
- """
21
- # `gradio_calendar`
22
-
23
- <div style="display: flex; gap: 7px;">
24
- <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
25
- </div>
26
-
27
- Gradio component for selecting dates with a calendar πŸ“†
28
- """, elem_classes=["md-custom"], header_links=True)
29
- app.render()
30
- gr.Markdown(
31
- """
32
- ## Installation
33
-
34
- ```bash
35
- pip install gradio_calendar
36
- ```
37
-
38
- ## Usage
39
-
40
- ```python
41
  import gradio as gr
42
  from gradio_calendar import Calendar
43
  import datetime
@@ -54,84 +14,3 @@ demo = gr.Interface(is_weekday,
54
 
55
  if __name__ == "__main__":
56
  demo.launch()
57
-
58
- ```
59
- """, elem_classes=["md-custom"], header_links=True)
60
-
61
-
62
- gr.Markdown("""
63
- ## `Calendar`
64
-
65
- ### Initialization
66
- """, elem_classes=["md-custom"], header_links=True)
67
-
68
- gr.ParamViewer(value=_docs["Calendar"]["members"]["__init__"], linkify=[])
69
-
70
-
71
- gr.Markdown("### Events")
72
- gr.ParamViewer(value=_docs["Calendar"]["events"], linkify=['Event'])
73
-
74
-
75
-
76
-
77
- gr.Markdown("""
78
-
79
- ### User function
80
-
81
- The impact on the users predict function varies depending on whether the component is used as an input or output for an event (or both).
82
-
83
- - When used as an Input, the component only impacts the input signature of the user function.
84
- - When used as an output, the component only impacts the return signature of the user function.
85
-
86
- The code snippet below is accurate in cases where the component is used as both an input and an output.
87
-
88
-
89
-
90
- ```python
91
- def predict(
92
- value: str | datetime.datetime | None
93
- ) -> str | datetime.datetime | None:
94
- return value
95
- ```
96
- """, elem_classes=["md-custom", "Calendar-user-fn"], header_links=True)
97
-
98
-
99
-
100
-
101
- demo.load(None, js=r"""function() {
102
- const refs = {};
103
- const user_fn_refs = {
104
- Calendar: [], };
105
- requestAnimationFrame(() => {
106
-
107
- Object.entries(user_fn_refs).forEach(([key, refs]) => {
108
- if (refs.length > 0) {
109
- const el = document.querySelector(`.${key}-user-fn`);
110
- if (!el) return;
111
- refs.forEach(ref => {
112
- el.innerHTML = el.innerHTML.replace(
113
- new RegExp("\\b"+ref+"\\b", "g"),
114
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
115
- );
116
- })
117
- }
118
- })
119
-
120
- Object.entries(refs).forEach(([key, refs]) => {
121
- if (refs.length > 0) {
122
- const el = document.querySelector(`.${key}`);
123
- if (!el) return;
124
- refs.forEach(ref => {
125
- el.innerHTML = el.innerHTML.replace(
126
- new RegExp("\\b"+ref+"\\b", "g"),
127
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
128
- );
129
- })
130
- }
131
- })
132
- })
133
- }
134
-
135
- """)
136
-
137
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from gradio_calendar import Calendar
3
  import datetime
 
14
 
15
  if __name__ == "__main__":
16
  demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
gradio_cached_examples/13/log.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Is it a weekday?,flag,username,timestamp
2
+ "{""label"":""False"",""confidences"":null}",,,2024-01-23 13:10:07.762276
3
+ "{""label"":""True"",""confidences"":null}",,,2024-01-23 13:10:07.763523
space.py CHANGED
@@ -3,7 +3,7 @@ import gradio as gr
3
  from app import demo as app
4
  import os
5
 
6
- _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': 'Literal["string", "datetime"]', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[..., Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
7
 
8
  abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
 
@@ -21,47 +21,7 @@ with gr.Blocks(
21
  # `gradio_calendar`
22
 
23
  <div style="display: flex; gap: 7px;">
24
- <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/settings/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
25
- </div>
26
-
27
- Gradio component for selecting dates with a calendar πŸ“†
28
- """, elem_classes=["md-custom"], header_links=True)
29
- app.render()
30
- gr.Markdown(
31
- """
32
- ## Installation
33
-
34
- ```bash
35
- pip install gradio_calendar
36
- ```
37
-
38
- ## Usage
39
-
40
- ```python
41
-
42
- import gradio as gr
43
- from _app import demo as app
44
- import os
45
-
46
- _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': 'Literal["string", "datetime"]', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[..., Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
47
-
48
- abs_path = os.path.join(os.path.dirname(__file__), "css.css")
49
-
50
- with gr.Blocks(
51
- css=abs_path,
52
- theme=gr.themes.Default(
53
- font_mono=[
54
- gr.themes.GoogleFont("Inconsolata"),
55
- "monospace",
56
- ],
57
- ),
58
- ) as demo:
59
- gr.Markdown(
60
- """
61
- # `gradio_calendar`
62
-
63
- <div style="display: flex; gap: 7px;">
64
- <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/settings/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
65
  </div>
66
 
67
  Gradio component for selecting dates with a calendar πŸ“†
@@ -114,87 +74,6 @@ if __name__ == "__main__":
114
 
115
 
116
 
117
- gr.Markdown("""
118
-
119
- ### User function
120
-
121
- The impact on the users predict function varies depending on whether the component is used as an input or output for an event (or both).
122
-
123
- - When used as an Input, the component only impacts the input signature of the user function.
124
- - When used as an output, the component only impacts the return signature of the user function.
125
-
126
- The code snippet below is accurate in cases where the component is used as both an input and an output.
127
-
128
-
129
-
130
- ```python
131
- def predict(
132
- value: str | datetime.datetime | None
133
- ) -> str | datetime.datetime | None:
134
- return value
135
- ```
136
- """, elem_classes=["md-custom", "Calendar-user-fn"], header_links=True)
137
-
138
-
139
-
140
-
141
- demo.load(None, js=r"""function() {
142
- const refs = {};
143
- const user_fn_refs = {
144
- Calendar: [], };
145
- requestAnimationFrame(() => {
146
-
147
- Object.entries(user_fn_refs).forEach(([key, refs]) => {
148
- if (refs.length > 0) {
149
- const el = document.querySelector(`.${key}-user-fn`);
150
- if (!el) return;
151
- refs.forEach(ref => {
152
- el.innerHTML = el.innerHTML.replace(
153
- new RegExp("\\b"+ref+"\\b", "g"),
154
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
155
- );
156
- })
157
- }
158
- })
159
-
160
- Object.entries(refs).forEach(([key, refs]) => {
161
- if (refs.length > 0) {
162
- const el = document.querySelector(`.${key}`);
163
- if (!el) return;
164
- refs.forEach(ref => {
165
- el.innerHTML = el.innerHTML.replace(
166
- new RegExp("\\b"+ref+"\\b", "g"),
167
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
168
- );
169
- })
170
- }
171
- })
172
- })
173
- }
174
-
175
- """)
176
-
177
- demo.launch()
178
-
179
- ```
180
- """, elem_classes=["md-custom"], header_links=True)
181
-
182
-
183
- gr.Markdown("""
184
- ## `Calendar`
185
-
186
- ### Initialization
187
- """, elem_classes=["md-custom"], header_links=True)
188
-
189
- gr.ParamViewer(value=_docs["Calendar"]["members"]["__init__"], linkify=[])
190
-
191
-
192
- gr.Markdown("### Events")
193
- gr.ParamViewer(value=_docs["Calendar"]["events"], linkify=['Event'])
194
-
195
-
196
-
197
-
198
  gr.Markdown("""
199
 
200
  ### User function
 
3
  from app import demo as app
4
  import os
5
 
6
+ _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': '"string" | "datetime"', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[Ellipsis, Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
7
 
8
  abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
 
 
21
  # `gradio_calendar`
22
 
23
  <div style="display: flex; gap: 7px;">
24
+ <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  </div>
26
 
27
  Gradio component for selecting dates with a calendar πŸ“†
 
74
 
75
 
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  gr.Markdown("""
78
 
79
  ### User function
src/README.md CHANGED
@@ -64,7 +64,7 @@ str | datetime.datetime
64
  <td align="left" style="width: 25%;">
65
 
66
  ```python
67
- Literal["string", "datetime"]
68
  ```
69
 
70
  </td>
@@ -220,7 +220,7 @@ bool
220
  <td align="left" style="width: 25%;">
221
 
222
  ```python
223
- Callable[..., Any] | None
224
  ```
225
 
226
  </td>
 
64
  <td align="left" style="width: 25%;">
65
 
66
  ```python
67
+ "string" | "datetime"
68
  ```
69
 
70
  </td>
 
220
  <td align="left" style="width: 25%;">
221
 
222
  ```python
223
+ Callable[Ellipsis, Any] | None
224
  ```
225
 
226
  </td>
src/demo/app.py CHANGED
@@ -1,43 +1,3 @@
1
-
2
- import gradio as gr
3
- from _app import demo as app
4
- import os
5
-
6
- _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': 'Literal["string", "datetime"]', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[..., Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
7
-
8
- abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
-
10
- with gr.Blocks(
11
- css=abs_path,
12
- theme=gr.themes.Default(
13
- font_mono=[
14
- gr.themes.GoogleFont("Inconsolata"),
15
- "monospace",
16
- ],
17
- ),
18
- ) as demo:
19
- gr.Markdown(
20
- """
21
- # `gradio_calendar`
22
-
23
- <div style="display: flex; gap: 7px;">
24
- <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
25
- </div>
26
-
27
- Gradio component for selecting dates with a calendar πŸ“†
28
- """, elem_classes=["md-custom"], header_links=True)
29
- app.render()
30
- gr.Markdown(
31
- """
32
- ## Installation
33
-
34
- ```bash
35
- pip install gradio_calendar
36
- ```
37
-
38
- ## Usage
39
-
40
- ```python
41
  import gradio as gr
42
  from gradio_calendar import Calendar
43
  import datetime
@@ -54,84 +14,3 @@ demo = gr.Interface(is_weekday,
54
 
55
  if __name__ == "__main__":
56
  demo.launch()
57
-
58
- ```
59
- """, elem_classes=["md-custom"], header_links=True)
60
-
61
-
62
- gr.Markdown("""
63
- ## `Calendar`
64
-
65
- ### Initialization
66
- """, elem_classes=["md-custom"], header_links=True)
67
-
68
- gr.ParamViewer(value=_docs["Calendar"]["members"]["__init__"], linkify=[])
69
-
70
-
71
- gr.Markdown("### Events")
72
- gr.ParamViewer(value=_docs["Calendar"]["events"], linkify=['Event'])
73
-
74
-
75
-
76
-
77
- gr.Markdown("""
78
-
79
- ### User function
80
-
81
- The impact on the users predict function varies depending on whether the component is used as an input or output for an event (or both).
82
-
83
- - When used as an Input, the component only impacts the input signature of the user function.
84
- - When used as an output, the component only impacts the return signature of the user function.
85
-
86
- The code snippet below is accurate in cases where the component is used as both an input and an output.
87
-
88
-
89
-
90
- ```python
91
- def predict(
92
- value: str | datetime.datetime | None
93
- ) -> str | datetime.datetime | None:
94
- return value
95
- ```
96
- """, elem_classes=["md-custom", "Calendar-user-fn"], header_links=True)
97
-
98
-
99
-
100
-
101
- demo.load(None, js=r"""function() {
102
- const refs = {};
103
- const user_fn_refs = {
104
- Calendar: [], };
105
- requestAnimationFrame(() => {
106
-
107
- Object.entries(user_fn_refs).forEach(([key, refs]) => {
108
- if (refs.length > 0) {
109
- const el = document.querySelector(`.${key}-user-fn`);
110
- if (!el) return;
111
- refs.forEach(ref => {
112
- el.innerHTML = el.innerHTML.replace(
113
- new RegExp("\\b"+ref+"\\b", "g"),
114
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
115
- );
116
- })
117
- }
118
- })
119
-
120
- Object.entries(refs).forEach(([key, refs]) => {
121
- if (refs.length > 0) {
122
- const el = document.querySelector(`.${key}`);
123
- if (!el) return;
124
- refs.forEach(ref => {
125
- el.innerHTML = el.innerHTML.replace(
126
- new RegExp("\\b"+ref+"\\b", "g"),
127
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
128
- );
129
- })
130
- }
131
- })
132
- })
133
- }
134
-
135
- """)
136
-
137
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from gradio_calendar import Calendar
3
  import datetime
 
14
 
15
  if __name__ == "__main__":
16
  demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/demo/gradio_cached_examples/13/log.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Is it a weekday?,flag,username,timestamp
2
+ "{""label"":""False"",""confidences"":null}",,,2024-01-23 13:10:07.762276
3
+ "{""label"":""True"",""confidences"":null}",,,2024-01-23 13:10:07.763523
src/demo/space.py CHANGED
@@ -3,7 +3,7 @@ import gradio as gr
3
  from app import demo as app
4
  import os
5
 
6
- _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': 'Literal["string", "datetime"]', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[..., Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
7
 
8
  abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
 
@@ -21,47 +21,7 @@ with gr.Blocks(
21
  # `gradio_calendar`
22
 
23
  <div style="display: flex; gap: 7px;">
24
- <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/settings/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
25
- </div>
26
-
27
- Gradio component for selecting dates with a calendar πŸ“†
28
- """, elem_classes=["md-custom"], header_links=True)
29
- app.render()
30
- gr.Markdown(
31
- """
32
- ## Installation
33
-
34
- ```bash
35
- pip install gradio_calendar
36
- ```
37
-
38
- ## Usage
39
-
40
- ```python
41
-
42
- import gradio as gr
43
- from _app import demo as app
44
- import os
45
-
46
- _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': 'Literal["string", "datetime"]', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[..., Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
47
-
48
- abs_path = os.path.join(os.path.dirname(__file__), "css.css")
49
-
50
- with gr.Blocks(
51
- css=abs_path,
52
- theme=gr.themes.Default(
53
- font_mono=[
54
- gr.themes.GoogleFont("Inconsolata"),
55
- "monospace",
56
- ],
57
- ),
58
- ) as demo:
59
- gr.Markdown(
60
- """
61
- # `gradio_calendar`
62
-
63
- <div style="display: flex; gap: 7px;">
64
- <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/settings/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
65
  </div>
66
 
67
  Gradio component for selecting dates with a calendar πŸ“†
@@ -114,87 +74,6 @@ if __name__ == "__main__":
114
 
115
 
116
 
117
- gr.Markdown("""
118
-
119
- ### User function
120
-
121
- The impact on the users predict function varies depending on whether the component is used as an input or output for an event (or both).
122
-
123
- - When used as an Input, the component only impacts the input signature of the user function.
124
- - When used as an output, the component only impacts the return signature of the user function.
125
-
126
- The code snippet below is accurate in cases where the component is used as both an input and an output.
127
-
128
-
129
-
130
- ```python
131
- def predict(
132
- value: str | datetime.datetime | None
133
- ) -> str | datetime.datetime | None:
134
- return value
135
- ```
136
- """, elem_classes=["md-custom", "Calendar-user-fn"], header_links=True)
137
-
138
-
139
-
140
-
141
- demo.load(None, js=r"""function() {
142
- const refs = {};
143
- const user_fn_refs = {
144
- Calendar: [], };
145
- requestAnimationFrame(() => {
146
-
147
- Object.entries(user_fn_refs).forEach(([key, refs]) => {
148
- if (refs.length > 0) {
149
- const el = document.querySelector(`.${key}-user-fn`);
150
- if (!el) return;
151
- refs.forEach(ref => {
152
- el.innerHTML = el.innerHTML.replace(
153
- new RegExp("\\b"+ref+"\\b", "g"),
154
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
155
- );
156
- })
157
- }
158
- })
159
-
160
- Object.entries(refs).forEach(([key, refs]) => {
161
- if (refs.length > 0) {
162
- const el = document.querySelector(`.${key}`);
163
- if (!el) return;
164
- refs.forEach(ref => {
165
- el.innerHTML = el.innerHTML.replace(
166
- new RegExp("\\b"+ref+"\\b", "g"),
167
- `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
168
- );
169
- })
170
- }
171
- })
172
- })
173
- }
174
-
175
- """)
176
-
177
- demo.launch()
178
-
179
- ```
180
- """, elem_classes=["md-custom"], header_links=True)
181
-
182
-
183
- gr.Markdown("""
184
- ## `Calendar`
185
-
186
- ### Initialization
187
- """, elem_classes=["md-custom"], header_links=True)
188
-
189
- gr.ParamViewer(value=_docs["Calendar"]["members"]["__init__"], linkify=[])
190
-
191
-
192
- gr.Markdown("### Events")
193
- gr.ParamViewer(value=_docs["Calendar"]["events"], linkify=['Event'])
194
-
195
-
196
-
197
-
198
  gr.Markdown("""
199
 
200
  ### User function
 
3
  from app import demo as app
4
  import os
5
 
6
+ _docs = {'Calendar': {'description': 'A calendar component that allows users to select a date.\n\ndepending on the value of the type parameter.\n\n\n value: The default date value, formatted as YYYY-MM-DD. Can be either a string or datetime.datetime object.\n type: The type of the value to pass to the python function. Either "string" or "datetime".\n label: The label for the component.\n info: Extra text to render below the component.\n show_label: Whether to show the label for the component.\n container: Whether to show the component in a container.\n scale: The relative size of the component compared to other components in the same row.\n min_width: The minimum width of the component.\n interactive: Whether to allow the user to interact with the component.\n visible: Whether to show the component.\n elem_id: The id of the component. Useful for custom js or css.\n elem_classes: The classes of the component. Useful for custom js or css.\n render: Whether to render the component in the parent Blocks scope.\n load_fn: A function to run when the component is first loaded onto the page to set the intial value.\n every: Whether load_fn should be run on a fixed time interval.', 'members': {'__init__': {'value': {'type': 'str | datetime.datetime', 'default': 'None', 'description': None}, 'type': {'type': '"string" | "datetime"', 'default': '"datetime"', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': None}, 'info': {'type': 'str | None', 'default': 'None', 'description': None}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': None}, 'container': {'type': 'bool', 'default': 'True', 'description': None}, 'scale': {'type': 'int | None', 'default': 'None', 'description': None}, 'min_width': {'type': 'int | None', 'default': 'None', 'description': None}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': None}, 'visible': {'type': 'bool', 'default': 'True', 'description': None}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': None}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': None}, 'render': {'type': 'bool', 'default': 'True', 'description': None}, 'load_fn': {'type': 'Callable[Ellipsis, Any] | None', 'default': 'None', 'description': None}, 'every': {'type': 'float | None', 'default': 'None', 'description': None}}, 'postprocess': {'value': {'type': 'str | datetime.datetime | None', 'description': None}}, 'preprocess': {'return': {'type': 'str | datetime.datetime | None', 'description': None}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': ''}, 'input': {'type': None, 'default': None, 'description': ''}, 'submit': {'type': None, 'default': None, 'description': ''}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'Calendar': []}}}
7
 
8
  abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
 
 
21
  # `gradio_calendar`
22
 
23
  <div style="display: flex; gap: 7px;">
24
+ <a href="https://pypi.org/project/gradio_calendar/" target="_blank"><img alt="PyPI - Version" src="https://img.shields.io/pypi/v/gradio_calendar"></a> <a href="https://github.com/freddyaboulton/gradio-calendar/issues" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/Issues-white?logo=github&logoColor=black"></a> <a href="https://huggingface.co/spaces/freddyaboulton/gradio_calendar/discussions" target="_blank"><img alt="Static Badge" src="https://img.shields.io/badge/%F0%9F%A4%97%20Discuss-%23097EFF?style=flat&logoColor=black"></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  </div>
26
 
27
  Gradio component for selecting dates with a calendar πŸ“†
 
74
 
75
 
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  gr.Markdown("""
78
 
79
  ### User function
src/gradio_cached_examples/35/log.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Is it a weekday?,flag,username,timestamp
2
+ "{""label"":""False"",""confidences"":null}",,,2024-01-23 13:15:11.214822
3
+ "{""label"":""True"",""confidences"":null}",,,2024-01-23 13:15:11.215546
src/pyproject.toml CHANGED
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
8
 
9
  [project]
10
  name = "gradio_calendar"
11
- version = "0.0.4"
12
  description = "Gradio component for selecting dates with a calendar πŸ“†"
13
  readme = "README.md"
14
  license = "MIT"
@@ -40,7 +40,7 @@ repository = "https://github.com/freddyaboulton/gradio-calendar"
40
  space = "https://huggingface.co/spaces/freddyaboulton/gradio_calendar"
41
 
42
  [tool.hatch.build]
43
- artifacts = ["/backend/gradio_calendar/templates", "*.pyi", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates"]
44
 
45
  [tool.hatch.build.targets.wheel]
46
  packages = ["/backend/gradio_calendar"]
 
8
 
9
  [project]
10
  name = "gradio_calendar"
11
+ version = "2.4.5"
12
  description = "Gradio component for selecting dates with a calendar πŸ“†"
13
  readme = "README.md"
14
  license = "MIT"
 
40
  space = "https://huggingface.co/spaces/freddyaboulton/gradio_calendar"
41
 
42
  [tool.hatch.build]
43
+ artifacts = ["/backend/gradio_calendar/templates", "*.pyi", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates", "backend/gradio_calendar/templates"]
44
 
45
  [tool.hatch.build.targets.wheel]
46
  packages = ["/backend/gradio_calendar"]