diff --git a/README.md b/README.md index b44751fb..007ecbc1 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,13 @@ -# Data Pre-processor -De-constructing regular pdf's,docx format based information into structured JSON format. +# The Aim +To convert data from safety data sheets (pdfs) into machine readable JSON format. ---- -## How to Contribute +# The Solution (?) +I analysed the steps to be taken in order to perform a task like this and came up with following approach: -To contribute to our documentation: +First, we use the pymupdf library in order to extract the raw text. -1. **Fork the Repository:** Click the "Fork" button at the top right of this repository to create a copy in your GitHub account. 🍴 +Then we preprocess the text and eliminate any unwanted stuff like headers, footers etc. + categorize the important stuff by using spaCy/Regex. Both are different in their approach: spaCy is an NLP library that uses ML models to process text in a more contexual sense, while Regex uses pattern matching to find specific sequences of data, so I guess it's better for static patterns of data. -2. **Clone Your Fork:** Clone the forked repository to your local machine using Git. 🖥️ - - ```bash - git clone https://github.com//data_preprocessor.git - ``` - -3. **Create a Branch:** Create a new branch for your contribution. 🌿 - - ```bash - git checkout -b - ``` -4. **Virtual Evnvironment:** Create necessary virtual environtment or docker container; prefer if you look into docker and stuff. -5. Use Git CLI to add your files and track it. -6. Once pushed to your branch give a pull request. - ---- +pymupdf seems to have an inbuilt function for extracting tabular data. +However, I was unable to do this due to enviroment problems. diff --git a/dpml.ipynb b/dpml.ipynb new file mode 100644 index 00000000..3ce82673 --- /dev/null +++ b/dpml.ipynb @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyMyoCOq0iQ7Sc8KsUDBEsj6"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"code","source":["from google.colab import drive\n","drive.mount('/content/drive')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"VWcV9Tln8cxU","executionInfo":{"status":"ok","timestamp":1728035572623,"user_tz":-330,"elapsed":23657,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"923fe094-3cc5-4375-9fd2-2c09fcf75c7c"},"execution_count":4,"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/drive\n"]}]},{"cell_type":"code","source":["%%bash\n","cd /content/drive/MyDrive/\n","cd data-preproccessor\n","git clone https://github.com/sceptix-club/data_preprocessor.git data_preprocessor_repo2"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"G3cKRoKv8ngz","executionInfo":{"status":"ok","timestamp":1728035596790,"user_tz":-330,"elapsed":2149,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"09748bd4-320c-4b31-fdca-6a575c4ff750"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stderr","text":["Cloning into 'data_preprocessor_repo2'...\n"]}]},{"cell_type":"code","execution_count":null,"metadata":{"id":"hAwNXxe46yZW"},"outputs":[],"source":["!sudo apt-get install -y poppler-utils\n","!pip install pdf2image\n"]},{"cell_type":"code","source":["pdf_path = '/content/drive/MyDrive/data-preproccessor/data_preprocessor/data/acetone-acs-l.pdf'"],"metadata":{"id":"mSpWbILn8bTc","executionInfo":{"status":"ok","timestamp":1728035862833,"user_tz":-330,"elapsed":507,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}}},"execution_count":6,"outputs":[]},{"cell_type":"code","source":["from pdf2image import convert_from_path\n","import os"],"metadata":{"id":"wmfAvMQ58bzQ","executionInfo":{"status":"ok","timestamp":1728035889969,"user_tz":-330,"elapsed":519,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}}},"execution_count":7,"outputs":[]},{"cell_type":"code","source":["if not os.path.exists('pdf_images'): #directory to store images\n"," os.makedirs('pdf_images')"],"metadata":{"id":"SXgeKrtV92bT","executionInfo":{"status":"ok","timestamp":1728035911279,"user_tz":-330,"elapsed":4,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}}},"execution_count":8,"outputs":[]},{"cell_type":"code","source":["images = convert_from_path(pdf_path, dpi=300) # convert pdf to images"],"metadata":{"id":"I5XSXdFT96GJ","executionInfo":{"status":"ok","timestamp":1728035929664,"user_tz":-330,"elapsed":4473,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}}},"execution_count":9,"outputs":[]},{"cell_type":"code","source":["for i, img in enumerate(images):\n"," img_path = f'pdf_images/page_{i + 1}.png' # save path for each page\n"," img.save(img_path, 'PNG') # save the image as a PNG format\n"," print(f'Page {i + 1} saved as {img_path}') # print the saved image path"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"zL1W9qOS-Bdw","executionInfo":{"status":"ok","timestamp":1728035959495,"user_tz":-330,"elapsed":4199,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"a2b0d94c-b8b3-4f16-8fc0-781b7a6bee1b"},"execution_count":10,"outputs":[{"output_type":"stream","name":"stdout","text":["Page 1 saved as pdf_images/page_1.png\n","Page 2 saved as pdf_images/page_2.png\n","Page 3 saved as pdf_images/page_3.png\n","Page 4 saved as pdf_images/page_4.png\n","Page 5 saved as pdf_images/page_5.png\n","Page 6 saved as pdf_images/page_6.png\n","Page 7 saved as pdf_images/page_7.png\n","Page 8 saved as pdf_images/page_8.png\n","Page 9 saved as pdf_images/page_9.png\n"]}]},{"cell_type":"code","source":["from PIL import Image #display image\n","from IPython.display import display"],"metadata":{"id":"vW3BX_tB-D_a","executionInfo":{"status":"ok","timestamp":1728035971626,"user_tz":-330,"elapsed":718,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}}},"execution_count":11,"outputs":[]},{"cell_type":"code","source":["for i, img in enumerate(images): #display each saved image\n"," display(img)\n"," print(f'Displaying page {i + 1}')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000,"output_embedded_package_id":"1tgNOxmI6Z2wGb9J9JTtZ9Xik-0vk_bEs"},"id":"vLCD6J4e-H6u","executionInfo":{"status":"ok","timestamp":1728035992703,"user_tz":-330,"elapsed":10063,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"7dbe7d6c-384d-4c84-f112-fb36f2f4e3bb"},"execution_count":12,"outputs":[{"output_type":"display_data","data":{"text/plain":"Output hidden; open in https://colab.research.google.com to view."},"metadata":{}}]},{"cell_type":"code","source":["from google.colab import files #download images"],"metadata":{"id":"2Q8E_Ur8-Q2O","executionInfo":{"status":"ok","timestamp":1728036024010,"user_tz":-330,"elapsed":514,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}}},"execution_count":13,"outputs":[]},{"cell_type":"code","source":["for i in range(len(images)): #download each image to local machine\n"," img_path = f'pdf_images/page_{i + 1}.png'\n"," files.download(img_path)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":17},"id":"HoMxAaMF-WRx","executionInfo":{"status":"ok","timestamp":1728036042041,"user_tz":-330,"elapsed":521,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"514f6a06-854f-435d-9bf7-87c1936c9289"},"execution_count":14,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_50ed4efa-a09e-4930-80be-224b31db7fdd\", \"page_1.png\", 445143)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_ec062a52-ed9b-476b-a7e6-0693af3bcee1\", \"page_2.png\", 643471)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_2d04e50b-9fce-47d4-b8d5-68950009e8f8\", \"page_3.png\", 521936)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_7e88ccf3-2239-4b8a-b15d-6919aa43e8af\", \"page_4.png\", 677013)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_3ffd2e63-a84e-47b0-9811-6cafb1bf7dac\", \"page_5.png\", 562737)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_a421b5bd-f00c-4f9e-8720-5c984e2e692c\", \"page_6.png\", 598326)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_aaba06a2-8891-4b7a-a3d7-e754de442e07\", \"page_7.png\", 429114)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_171f6d26-7bf6-4028-b428-19204bf2b12c\", \"page_8.png\", 484506)"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["\n"," async function download(id, filename, size) {\n"," if (!google.colab.kernel.accessAllowed) {\n"," return;\n"," }\n"," const div = document.createElement('div');\n"," const label = document.createElement('label');\n"," label.textContent = `Downloading \"${filename}\": `;\n"," div.appendChild(label);\n"," const progress = document.createElement('progress');\n"," progress.max = size;\n"," div.appendChild(progress);\n"," document.body.appendChild(div);\n","\n"," const buffers = [];\n"," let downloaded = 0;\n","\n"," const channel = await google.colab.kernel.comms.open(id);\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n","\n"," for await (const message of channel.messages) {\n"," // Send a message to notify the kernel that we're ready.\n"," channel.send({})\n"," if (message.buffers) {\n"," for (const buffer of message.buffers) {\n"," buffers.push(buffer);\n"," downloaded += buffer.byteLength;\n"," progress.value = downloaded;\n"," }\n"," }\n"," }\n"," const blob = new Blob(buffers, {type: 'application/binary'});\n"," const a = document.createElement('a');\n"," a.href = window.URL.createObjectURL(blob);\n"," a.download = filename;\n"," div.appendChild(a);\n"," a.click();\n"," div.remove();\n"," }\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"application/javascript":["download(\"download_b248f578-a08a-41e0-bfc6-c2be68de7378\", \"page_9.png\", 337223)"]},"metadata":{}}]},{"cell_type":"markdown","source":["## Step 2:\n","Use an ML model to detect table boundaries within the PDF images.\n","here i am using Detectron2 model"],"metadata":{"id":"nO4dORcFAec7"}},{"cell_type":"code","source":[" !pip install torch torchvision torchaudio\n"],"metadata":{"id":"bNyvMmuSA7Mn"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["!git clone https://github.com/facebookresearch/detectron2.git\n","!cd detectron2\n"],"metadata":{"id":"ZSb-vyIxBTV2"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["!git clone https://github.com/facebookresearch/detectron2.git\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"UBWpBpsmCMik","executionInfo":{"status":"ok","timestamp":1728037049867,"user_tz":-330,"elapsed":512,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"ab9e9ccb-c95e-48d2-e060-c279dd74d248"},"execution_count":28,"outputs":[{"output_type":"stream","name":"stdout","text":["fatal: destination path 'detectron2' already exists and is not an empty directory.\n"]}]},{"cell_type":"code","source":["%cd detectron2\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"tsJ4pZb_CSJz","executionInfo":{"status":"ok","timestamp":1728037072571,"user_tz":-330,"elapsed":449,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"f972652b-b531-4680-926f-685ce98c727d"},"execution_count":29,"outputs":[{"output_type":"stream","name":"stdout","text":["/content/detectron2\n"]}]},{"cell_type":"code","source":["!python -m pip install -e .\n"],"metadata":{"id":"BrLIjBJ2CTZz"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["cd /content/drive/MyDrive/data-preproccessor/data_preprocessor_repo2\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"wfVJ8DPGDf7N","executionInfo":{"status":"ok","timestamp":1728039534429,"user_tz":-330,"elapsed":511,"user":{"displayName":"Lishel Lobo","userId":"04553851603943093757"}},"outputId":"3f3fe4e9-7324-48cf-c4a6-adfb02f6fa5a"},"execution_count":33,"outputs":[{"output_type":"stream","name":"stdout","text":["/content/drive/MyDrive/data-preproccessor/data_preprocessor_repo2\n"]}]}]} \ No newline at end of file diff --git a/pyvenv.cfg b/pyvenv.cfg new file mode 100644 index 00000000..f30950e8 --- /dev/null +++ b/pyvenv.cfg @@ -0,0 +1,3 @@ +home = C:\Users\Joy\AppData\Local\Programs\Python\Python310 +include-system-site-packages = false +version = 3.10.11 diff --git a/script.py b/script.py new file mode 100644 index 00000000..e69de29b