0xPlaygrounds / 0xPlaygrounds/subgrounds

How to close the SSL connection correctly?

Open
#52 2 comments 0 reactions 0 assignees View on GitHub
bug question
Dominant language
Python
Stars
73
Forks
12
PR merge metrics
No merged PRs in 30d

Description

Is there a method that I can close the SSL connection which is build by Subgrounds? I checked the API document which doesn't have a similar content.

I tried to close it with contextlib, but it also can't solve this problem.

```
# Import the Subgrounds library

from subgrounds import Subgrounds
from contextlib import closing
import os

def another_function():

# load_dotenv()
graph_api_key = ''
# Create a new Subgrounds object
with closing(Subgrounds()) as sg:

# Load the Uniswap v3 subgraph using a specific API endpoint
uni = sg.load_subgraph(
f'https://gateway.thegraph.com/api/{graph_api_key}/subgraphs/id/ELUcwgpm14LKPLrBRuVvPvNKHQ9HvwmtKgKSH6123cr7')
#
# Query the financialsDailySnapshots endpoint with a specified order, limit, and filter criteria
latest_snapshots = uni.Query.financialsDailySnapshots(
orderBy=uni.FinancialsDailySnapshot.timestamp,
orderDirection='desc',
first=1,
)

# Convert the query results to a Pandas dataframe and extract the first row
res = sg.query_df(latest_snapshots).squeeze()
pass
print("Another function")

another_function()
```

which would give me two error message:

> AttributeError: 'Subgrounds' object has no attribute 'close'
I can't close it like this.

> sys:1: ResourceWarning: unclosed

That's the real problem. When the program end, PY just simply terminate everything and trigger this error. I can read data from this, but how to safely close the connection?

Contributor guide

Open the contributing guide

Research direction

Look at the Subgrounds class in subgrounds/subgrounds.py to see how connections are managed. Check if there's a session or client that needs closing. The error mentions an unclosed ssl.SSLSocket, so examine the HTTP client used (likely requests or aiohttp). Find where the connection is established and ensure a proper cleanup method exists or can be added. Test by running the provided script after modifications.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, python
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.