## **PyGraphica** *0.1.1*
*By Luke Campbell*
PyGraphica is an easy-to-learn GUI module designed for Python, built on the Python bindings (pysdl2) for SDL-2.
*One important note before we start. For all coordinates and lengths, if represented as an integer will be interpreted as a measurement in pixels, and if represented as a string (e.g. '35') will be interpreted as a percentage of the height or width.*
\
**Installation**
The most simple installation is via pip, i.e
py -m pip install PyGraphica
*for windows*
python -m pip install PyGraphica
*for linux*
However the source code can be downloaded from GitHub, [here](youtube.com/watch?v=dQw4w9WgXcQ) if pip install fails.
Once the module has been imported, add it to your Python project like this:
from PyGraphica import draw, colours, origins, fonts
\
**Colours, Origins, and Fonts files**
The colours file contains a series of default RGB tuples, which can be used to simplify coding. The colours can be accessed by the following variable names:
| | | | | |
|--|--|--|--|--|
<span style="color:rgb(0,0,0)">BLACK</span>|<span style="color:rgb(64,64,64)">DARK_GREY</span>|<span style="color:rgb(128,128,128)">GREY</span>|<span style="color:rgb(191,191,191)">LIGHT_GREY</span>|<span style="color:rgb(255,255,255)">WHITE</span>
<span style="color:rgb(128,0,0)">DARK_RED</span>|<span style="color:rgb(255,0,0)">RED</span>|<span style="color:rgb(255,128,128)">PASTEL_PINK</span>|<span style="color:rgb(255,128,0)">ORANGE</span>|<span style="color:rgb(255,0,128)">PINK</span>
<span style="color:rgb(0,128,0)">DARK_GREEN</span>|<span style="color:rgb(0,255,0)">GREEN</span>|<span style="color:rgb(128,255,128)">PASTEL_GREEN</span>|<span style="color:rgb(128,255,0)">LIGHT_GREEN</span>|<span style="color:rgb(0,255,128)">NEON_GREEN</span>
<span style="color:rgb(0,0,128)">NAVY_BLUE</span>|<span style="color:rgb(0,0,255)">DARK_BLUE</span>|<span style="color:rgb(128,128,255)">PASTEL_BLUE</span>|<span style="color:rgb(0,128,255)">BLUE</span>|<span style="color:rgb(128,0,255)">PURPLE</span>
<span style="color:rgb(128,128,0)">MUSTARD</span>|<span style="color:rgb(255,255,0)">YELLOW</span>|<span style="color:rgb(255,255,128)">LIGHT_YELLOW</span>
<span style="color:rgb(0,128,128)">TURQUISE</span>|<span style="color:rgb(0,255,255)">LIGHT_BLUE</span>|<span style="color:rgb(128,255,255)">PALE_BLUE</span>
<span style="color:rgb(128,0,128)">DARK_PINK</span>|<span style="color:rgb(255,0,255)">LIGHTPINK</span>|<span style="color:rgb(255,128,255)">PALE_PINK</span>
For example:
colours.PASTEL_BLUE
\
The Origins file contains the five origin options, top-left, top-right, bottom-left, bottom-right, and centre. These origins can be accessed using the following variable names:
TOP_LEFT
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_RIGHT
CENTRE
For example:
origins.BOTTOM_LEFT
\
The fonts file contains the path to the default fonts included in PyGraphica. These paths can be accessed using the following names:
|Variable| Font|
|--|--|
Arial| <span style="font-family:arial">Hello world!</span>
Baskerville| <span style="font-family:baskerville">Hello world!</span>
BrushScript| <span style="font-family:brush script mt">Hello world!</span>
Calibri| <span style="font-family:calibri">Hello world!</span>
Courier| <span style="font-family:courier">Hello world!</span>
Garamond| <span style="font-family:garamond">Hello world!</span>
Helvetica| <span style="font-family:helvetica">Hello world!</span>
Impact| <span style="font-family:impact">Hello world!</span>
OpenDyslexic| <span style="font-family:opendyslexic">Hello world!</span>
TimesNewRoman| <span style="font-family:timesnewroman">Hello world!</span>
Trebuchet|<span style="font-family:trebuchet ms">Hello world!</span>
For example:
fonts.OpenDyslexic
\
**Creating a window**
The *window* class can be defined by the following attributes:
|attribute| default| type| description|
|--|--|--|--|
|name| 'PyGraphica'| string| name that will appear above the window|
|size| (800, 600)| tuple of two integers or strings of integers| dimensions (in px) of the screen|
|resizable| False| boolean| whether the user can resize the window by dragging|
|icon| False| Path (string) to file, or False for no icon| The image that will be displayed in the top left corner of the window
|position| (0,20)| tuple of two integers or strings of integers| The location (px) of the window on the screen|
|origin| top left| variable from origins file| The location of the origin and corresponding coordinate system
|colour| black| variable from colours file or RGB tuple| background colour of the window
An example window could be:
NavCS = draw.window("NavCS", (400,600), True, "NavCS_logo_icon.jpg", (0,20), origins.CENTRE, colours.WHITE)
Once the window has been created the following attributes can be called:
|attribute| description|
|--|--|
|keys| keys currently held by the user|
|comms| command keys currently held by the user|
|key_changes| keys newly pressed by the user (not held)|
|comm_changes| command keys newly pressed by the user (not held)
|caps| whether capslock is on or shift is held|
|mouse_x| x position of the mouse|
|mouse_y| y position of the mouse
|mouse_down| whether the mouse button is held down|
|mouse_held| whether the mouse button is held down for more than one cycle|
\
**Creating a line**
The line class can be defined by the following attributes:
|attribute| type| description|
|--|--|--|
|window| window object| window which the line will be drawn to
|x1| integer or string of integer| x component of the start coordinate
|x2| integer or string of integer| x component of the end coordinate
|y1| integer or string of integer| y component of the start coordinate
|y2| integer or string of integer| y component of the end coordinate
|colour| variable from colours file or RGB tuple| colour of the line
For example
line1 = draw.line(app, 100, 70, 250, 300, colours.RED)
Once the line has been created the following attributes can be called:
|name| description|
|--|--|
|visible| whether the line is displayed to the screen or not|
\
**Creating a rectangle**
The rectangle class can be defined by the following attributes:
|name| default| type| description|
|--|--|--|--|
|window| NA| window object| window which the line will be drawn to
|x1| NA| integer or string of integer| x component of the start coordinate
|x2| NA| integer or string of integer| x component of the end coordinate
|y1| NA| integer or string of integer| y component of the start coordinate
|y2| NA| integer or string of integer| y component of the end coordinate
|colour| False| variable from colours file, RGB tuple, or False for no fill| fill colour of rectangle|
|border_colour| False| integer or False for no border| colour of the border of the rectangle
|border_thickness| 1| positive integer| thickness of the border
For example:
my_rect = draw.rectangle(app, 10, 20, 600, 750, colours.PURPLE, colours.YELLOW, 2)
Once the rectangle has been created the following attributes can be called:
|name| description|
|--|--|
|visible| whether the rectangle is displayed to the screen or not|
|hover| whether the mouse is hovered over the rectangle|
|clicked| whether theuser has selected the rectangle|
For example:
if my_rect.clicked:
my_rect.visible = False
\
**Creating text**
The text class can be defined by the following attributes:
|name| default| type| description|
|--|--|--|--|
|window| NA| window object| window which the text will be drawn to
|x1| NA| integer| x component of the start coordinate
|y1| NA| integer| y component of the start coordinate
|size| NA| positive integer or string of positive integer| height| height of the text
|colour| NA| variable from colours file or RGB tuple| colour of the text
|content| NA| string| content of the text
|font| OpenSans| string| font of the text
For example:
title = draw.text(app, 100, -50, 20, colours.NAVY_BLUE, "Hello world!", "OpenSans")
Once the text object has been creeated the following attributes can be called:
|name| description|
|--|--|
|visible| whether the text is displayed to the screen or not|
|hover| whether the mouse is hovered over the text|
|clicked| whether the user has selected the text|
|x2| x component of the end coordinate|
|y2| y component of the end coordinate|
For example:
if title.clicked:
title.colour = colours.PASTEL_BLUE
elif title.hover:
title.colour = colours.BLUE
else:
title.colour = colours.NAVY_BLUE
\
**Creating a textbox**
A textbox is an input field in which users can type text. A textbox can be defined by the following attributes:
|name|default|type|description|
|--|--|--|--|
|window| NA| window object| window to which the textbox will be drawn|
|x1| NA| integer or string of integer| x component of the start coordinate|
|y1| NA| integer or string of integer| y component of the start coordinate|
|size| NA| integer or string of integer| height of text|
|width| 1| integer or string of integer| width of textbox (NB: textbox will expand if text goes out of textbox)
|default_text| Type here...| string| text which will be displayed in lighter shade if the user has not yet typed anything|
For example:
code_input = draw.textbox(app,"20","10","3","80","ENTER CODE HERE")
|name| description|
|--|--|
|visible| whether the textbox is displayed to the screen or not|
|hover| whether the mouse is hovered over the textbox|
|clicked| whether the user has selected the textbox|
|x2| x component of the end coordinate|
|y2| y component of the end coordinate|
|content| the content the user has typed into the textbox
For example:
def submit():
response = code_input.content
if response == "open sesame":
#let them to the next stage
else:
code_input.content = ""
\
**Creating an image**
The image class can be defined by the following parameters:
|Name |Default |Type |Description|
|--|--|--|--|
|window| NA| window object| window to which the image will be drawn|
|path| NA| string| path to image file|
|x1| NA| integer or string of integer| x component of the start coordinate|
|y1| NA| integer or string of integer| y component of the start coordinate|
|height| False| positive integer, string of positive integer or False if height is to be defined by width and aspect ratio| height of the image
|width| False| positive integer, string of positive integer or False if width is to be defined by height and aspect ratio| width of the image
For example:
background = draw.image(app, "/my_images/background_image.jpg", 0, 0, width = "100")
\
**Collision function**
The collision function takes two objects as input, and then returns a boolean for whether their hitboxes overlap. For example:
if draw.collision(rect1,image2):
#do something
\
**To_front and to_back functions**
These functions can be used to reorder the elements on the screen. For example:
draw.to_back(background_img)
Or
draw.to_font(player)
\
**Delete function**
This function is used to delete an object. For example:
draw.delete(rect1)
Raw data
{
"_id": null,
"home_page": "https://github.com/LukeCampbell5853/PyGraphica",
"name": "PyGraphica",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "gui",
"author": "Luke Campbell",
"author_email": "LukeCampbell5853@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a7/1a/283d9bac32124d2959d67474471c274fdcb0ffc7c5d535fa9f4ccb86d24a/PyGraphica-0.1.1.tar.gz",
"platform": null,
"description": "## **PyGraphica** *0.1.1*\r\n*By Luke Campbell*\r\n\r\nPyGraphica is an easy-to-learn GUI module designed for Python, built on the Python bindings (pysdl2) for SDL-2.\r\n\r\n*One important note before we start. For all coordinates and lengths, if represented as an integer will be interpreted as a measurement in pixels, and if represented as a string (e.g. '35') will be interpreted as a percentage of the height or width.*\r\n\r\n\\\r\n**Installation**\r\n\r\nThe most simple installation is via pip, i.e\r\n\r\n py -m pip install PyGraphica\r\n*for windows*\r\n\r\n python -m pip install PyGraphica\r\n*for linux*\r\n\r\nHowever the source code can be downloaded from GitHub, [here](youtube.com/watch?v=dQw4w9WgXcQ) if pip install fails.\r\n\r\nOnce the module has been imported, add it to your Python project like this:\r\n\r\n from PyGraphica import draw, colours, origins, fonts\r\n\r\n\\\r\n**Colours, Origins, and Fonts files**\r\n\r\nThe colours file contains a series of default RGB tuples, which can be used to simplify coding. The colours can be accessed by the following variable names:\r\n\r\n| | | | | |\r\n|--|--|--|--|--|\r\n<span style=\"color:rgb(0,0,0)\">BLACK</span>|<span style=\"color:rgb(64,64,64)\">DARK_GREY</span>|<span style=\"color:rgb(128,128,128)\">GREY</span>|<span style=\"color:rgb(191,191,191)\">LIGHT_GREY</span>|<span style=\"color:rgb(255,255,255)\">WHITE</span>\r\n<span style=\"color:rgb(128,0,0)\">DARK_RED</span>|<span style=\"color:rgb(255,0,0)\">RED</span>|<span style=\"color:rgb(255,128,128)\">PASTEL_PINK</span>|<span style=\"color:rgb(255,128,0)\">ORANGE</span>|<span style=\"color:rgb(255,0,128)\">PINK</span>\r\n<span style=\"color:rgb(0,128,0)\">DARK_GREEN</span>|<span style=\"color:rgb(0,255,0)\">GREEN</span>|<span style=\"color:rgb(128,255,128)\">PASTEL_GREEN</span>|<span style=\"color:rgb(128,255,0)\">LIGHT_GREEN</span>|<span style=\"color:rgb(0,255,128)\">NEON_GREEN</span>\r\n<span style=\"color:rgb(0,0,128)\">NAVY_BLUE</span>|<span style=\"color:rgb(0,0,255)\">DARK_BLUE</span>|<span style=\"color:rgb(128,128,255)\">PASTEL_BLUE</span>|<span style=\"color:rgb(0,128,255)\">BLUE</span>|<span style=\"color:rgb(128,0,255)\">PURPLE</span>\r\n<span style=\"color:rgb(128,128,0)\">MUSTARD</span>|<span style=\"color:rgb(255,255,0)\">YELLOW</span>|<span style=\"color:rgb(255,255,128)\">LIGHT_YELLOW</span>\r\n<span style=\"color:rgb(0,128,128)\">TURQUISE</span>|<span style=\"color:rgb(0,255,255)\">LIGHT_BLUE</span>|<span style=\"color:rgb(128,255,255)\">PALE_BLUE</span>\r\n<span style=\"color:rgb(128,0,128)\">DARK_PINK</span>|<span style=\"color:rgb(255,0,255)\">LIGHTPINK</span>|<span style=\"color:rgb(255,128,255)\">PALE_PINK</span>\r\n\r\n\r\nFor example:\r\n\r\n colours.PASTEL_BLUE\r\n\r\n\\\r\nThe Origins file contains the five origin options, top-left, top-right, bottom-left, bottom-right, and centre. These origins can be accessed using the following variable names:\r\n\r\nTOP_LEFT\r\n\r\nTOP_RIGHT\r\n\r\nBOTTOM_LEFT\r\n\r\nBOTTOM_RIGHT\r\n\r\nCENTRE\r\n\r\nFor example:\r\n\r\n origins.BOTTOM_LEFT\r\n\r\n\\\r\nThe fonts file contains the path to the default fonts included in PyGraphica. These paths can be accessed using the following names:\r\n\r\n|Variable| Font|\r\n|--|--|\r\nArial| <span style=\"font-family:arial\">Hello world!</span>\r\nBaskerville| <span style=\"font-family:baskerville\">Hello world!</span>\r\nBrushScript| <span style=\"font-family:brush script mt\">Hello world!</span>\r\nCalibri| <span style=\"font-family:calibri\">Hello world!</span>\r\nCourier| <span style=\"font-family:courier\">Hello world!</span>\r\nGaramond| <span style=\"font-family:garamond\">Hello world!</span>\r\nHelvetica| <span style=\"font-family:helvetica\">Hello world!</span>\r\nImpact| <span style=\"font-family:impact\">Hello world!</span>\r\nOpenDyslexic| <span style=\"font-family:opendyslexic\">Hello world!</span>\r\nTimesNewRoman| <span style=\"font-family:timesnewroman\">Hello world!</span>\r\nTrebuchet|<span style=\"font-family:trebuchet ms\">Hello world!</span>\r\n\r\nFor example:\r\n\r\n fonts.OpenDyslexic\r\n\r\n\\\r\n**Creating a window**\r\n\r\nThe *window* class can be defined by the following attributes:\r\n\r\n|attribute| default| type| description|\r\n|--|--|--|--|\r\n|name| 'PyGraphica'| string| name that will appear above the window|\r\n|size| (800, 600)| tuple of two integers or strings of integers| dimensions (in px) of the screen|\r\n|resizable| False| boolean| whether the user can resize the window by dragging|\r\n|icon| False| Path (string) to file, or False for no icon| The image that will be displayed in the top left corner of the window\r\n|position| (0,20)| tuple of two integers or strings of integers| The location (px) of the window on the screen|\r\n|origin| top left| variable from origins file| The location of the origin and corresponding coordinate system\r\n|colour| black| variable from colours file or RGB tuple| background colour of the window\r\n\r\nAn example window could be:\r\n\r\n NavCS = draw.window(\"NavCS\", (400,600), True, \"NavCS_logo_icon.jpg\", (0,20), origins.CENTRE, colours.WHITE)\r\n\r\nOnce the window has been created the following attributes can be called:\r\n\r\n|attribute| description|\r\n|--|--|\r\n|keys| keys currently held by the user|\r\n|comms| command keys currently held by the user|\r\n|key_changes| keys newly pressed by the user (not held)|\r\n|comm_changes| command keys newly pressed by the user (not held)\r\n|caps| whether capslock is on or shift is held|\r\n|mouse_x| x position of the mouse|\r\n|mouse_y| y position of the mouse\r\n|mouse_down| whether the mouse button is held down|\r\n|mouse_held| whether the mouse button is held down for more than one cycle|\r\n\r\n\\\r\n**Creating a line**\r\n\r\nThe line class can be defined by the following attributes:\r\n\r\n|attribute| type| description|\r\n|--|--|--|\r\n|window| window object| window which the line will be drawn to\r\n|x1| integer or string of integer| x component of the start coordinate\r\n|x2| integer or string of integer| x component of the end coordinate\r\n|y1| integer or string of integer| y component of the start coordinate\r\n|y2| integer or string of integer| y component of the end coordinate\r\n|colour| variable from colours file or RGB tuple| colour of the line\r\n\r\nFor example\r\n\r\n line1 = draw.line(app, 100, 70, 250, 300, colours.RED)\r\n\r\nOnce the line has been created the following attributes can be called:\r\n\r\n|name| description|\r\n|--|--|\r\n|visible| whether the line is displayed to the screen or not|\r\n\r\n\\\r\n**Creating a rectangle**\r\n\r\nThe rectangle class can be defined by the following attributes:\r\n\r\n|name| default| type| description|\r\n|--|--|--|--|\r\n|window| NA| window object| window which the line will be drawn to\r\n|x1| NA| integer or string of integer| x component of the start coordinate\r\n|x2| NA| integer or string of integer| x component of the end coordinate\r\n|y1| NA| integer or string of integer| y component of the start coordinate\r\n|y2| NA| integer or string of integer| y component of the end coordinate\r\n|colour| False| variable from colours file, RGB tuple, or False for no fill| fill colour of rectangle| \r\n|border_colour| False| integer or False for no border| colour of the border of the rectangle\r\n|border_thickness| 1| positive integer| thickness of the border\r\n\r\nFor example:\r\n\r\n my_rect = draw.rectangle(app, 10, 20, 600, 750, colours.PURPLE, colours.YELLOW, 2)\r\n\r\nOnce the rectangle has been created the following attributes can be called:\r\n\r\n|name| description|\r\n|--|--|\r\n|visible| whether the rectangle is displayed to the screen or not|\r\n|hover| whether the mouse is hovered over the rectangle|\r\n|clicked| whether theuser has selected the rectangle|\r\n\r\nFor example:\r\n\r\n if my_rect.clicked:\r\n my_rect.visible = False\r\n\r\n\\\r\n**Creating text**\r\n\r\nThe text class can be defined by the following attributes:\r\n\r\n|name| default| type| description|\r\n|--|--|--|--|\r\n|window| NA| window object| window which the text will be drawn to\r\n|x1| NA| integer| x component of the start coordinate\r\n|y1| NA| integer| y component of the start coordinate\r\n|size| NA| positive integer or string of positive integer| height| height of the text\r\n|colour| NA| variable from colours file or RGB tuple| colour of the text\r\n|content| NA| string| content of the text\r\n|font| OpenSans| string| font of the text\r\n\r\nFor example:\r\n\r\n title = draw.text(app, 100, -50, 20, colours.NAVY_BLUE, \"Hello world!\", \"OpenSans\")\r\n\r\nOnce the text object has been creeated the following attributes can be called:\r\n\r\n|name| description|\r\n|--|--|\r\n|visible| whether the text is displayed to the screen or not|\r\n|hover| whether the mouse is hovered over the text|\r\n|clicked| whether the user has selected the text|\r\n|x2| x component of the end coordinate|\r\n|y2| y component of the end coordinate|\r\n\r\nFor example:\r\n\r\n if title.clicked:\r\n title.colour = colours.PASTEL_BLUE\r\n elif title.hover:\r\n title.colour = colours.BLUE\r\n else:\r\n title.colour = colours.NAVY_BLUE\r\n\r\n\\\r\n**Creating a textbox**\r\n\r\nA textbox is an input field in which users can type text. A textbox can be defined by the following attributes:\r\n\r\n|name|default|type|description|\r\n|--|--|--|--|\r\n|window| NA| window object| window to which the textbox will be drawn| \r\n|x1| NA| integer or string of integer| x component of the start coordinate|\r\n|y1| NA| integer or string of integer| y component of the start coordinate|\r\n|size| NA| integer or string of integer| height of text|\r\n|width| 1| integer or string of integer| width of textbox (NB: textbox will expand if text goes out of textbox)\r\n|default_text| Type here...| string| text which will be displayed in lighter shade if the user has not yet typed anything|\r\n\r\nFor example:\r\n\r\n code_input = draw.textbox(app,\"20\",\"10\",\"3\",\"80\",\"ENTER CODE HERE\")\r\n\r\n|name| description|\r\n|--|--|\r\n|visible| whether the textbox is displayed to the screen or not|\r\n|hover| whether the mouse is hovered over the textbox|\r\n|clicked| whether the user has selected the textbox|\r\n|x2| x component of the end coordinate|\r\n|y2| y component of the end coordinate|\r\n|content| the content the user has typed into the textbox\r\n\r\nFor example:\r\n\r\n def submit():\r\n response = code_input.content\r\n if response == \"open sesame\":\r\n #let them to the next stage\r\n else:\r\n code_input.content = \"\"\r\n\r\n\\\r\n**Creating an image**\r\n\r\nThe image class can be defined by the following parameters:\r\n\r\n|Name |Default |Type |Description|\r\n|--|--|--|--|\r\n|window| NA| window object| window to which the image will be drawn|\r\n|path| NA| string| path to image file|\r\n|x1| NA| integer or string of integer| x component of the start coordinate|\r\n|y1| NA| integer or string of integer| y component of the start coordinate|\r\n|height| False| positive integer, string of positive integer or False if height is to be defined by width and aspect ratio| height of the image\r\n|width| False| positive integer, string of positive integer or False if width is to be defined by height and aspect ratio| width of the image\r\n\r\nFor example:\r\n\r\n background = draw.image(app, \"/my_images/background_image.jpg\", 0, 0, width = \"100\")\r\n\r\n\\\r\n**Collision function**\r\n\r\nThe collision function takes two objects as input, and then returns a boolean for whether their hitboxes overlap. For example:\r\n\r\n if draw.collision(rect1,image2):\r\n #do something\r\n\r\n\\\r\n**To_front and to_back functions**\r\n\r\nThese functions can be used to reorder the elements on the screen. For example:\r\n\r\n draw.to_back(background_img)\r\n\r\nOr\r\n\r\n draw.to_font(player)\r\n\r\n\\\r\n**Delete function**\r\n\r\nThis function is used to delete an object. For example:\r\n\r\n draw.delete(rect1)\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "PyGraphica is an easy-to-learn GUI module designed for Python, built on the Python bindings (pysdl2) for SDL-2.",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/LukeCampbell5853/PyGraphica"
},
"split_keywords": [
"gui"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a71a283d9bac32124d2959d67474471c274fdcb0ffc7c5d535fa9f4ccb86d24a",
"md5": "f935acd97d53aa2e281bb8fd2297ebb9",
"sha256": "fe4ee224898faa08dcd8c8c815e132f0f9f5179585fa0ed3eb160588f2c1b43b"
},
"downloads": -1,
"filename": "PyGraphica-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "f935acd97d53aa2e281bb8fd2297ebb9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 2164826,
"upload_time": "2023-07-17T02:48:30",
"upload_time_iso_8601": "2023-07-17T02:48:30.758158Z",
"url": "https://files.pythonhosted.org/packages/a7/1a/283d9bac32124d2959d67474471c274fdcb0ffc7c5d535fa9f4ccb86d24a/PyGraphica-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-17 02:48:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "LukeCampbell5853",
"github_project": "PyGraphica",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pygraphica"
}