1) Ensure that eventlet's subprocess is used for Python versions up to 3.11 and await the issue resolution for Python versions 3.12.

2) Fixed unescape sequence for Python 3.12
pull/6889/head
Akshay Joshi 2023-11-02 16:03:50 +05:30
parent 5d70803d6d
commit 9eb7c1cbea
9 changed files with 18 additions and 12 deletions

View File

@ -1,5 +1,5 @@
[pycodestyle]
ignore = E402,W504,W605,E231,W605
ignore = E402,W504,E231
max-line-length = 79
statistics = True
show-source = False

View File

@ -27,12 +27,14 @@ New features
Housekeeping
************
| `Issue #6441 <https://github.com/pgadmin-org/pgadmin4/issues/6441>`_ - Update app bundle built to use notarytool instead of altool.
| `Issue #6479 <https://github.com/pgadmin-org/pgadmin4/issues/6479>`_ - Replace the current layout library wcDocker with ReactJS based rc-dock.
Bug fixes
*********
| `Issue #2986 <https://github.com/pgadmin-org/pgadmin4/issues/2986>`_ - Fix an issue where the scroll position of panels was not remembered on Firefox.
| `Issue #5807 <https://github.com/pgadmin-org/pgadmin4/issues/5807>`_ - Fixed an issue where psql was not taking the role used to connect in server properties.
| `Issue #6459 <https://github.com/pgadmin-org/pgadmin4/issues/6459>`_ - Fix the sorting of size on the statistics panel.
| `Issue #6487 <https://github.com/pgadmin-org/pgadmin4/issues/6487>`_ - Fixed restoration of query tool database connection after dropping and re-creating the database with the same name.
| `Issue #6602 <https://github.com/pgadmin-org/pgadmin4/issues/6602>`_ - Fix an issue where the default server-group is being deleted if the load-server json file contains no servers.

View File

@ -21,7 +21,7 @@ PG_CODES_URLS = [
"https://raw.githubusercontent.com/postgres/postgres/master/src/pl/"
"plpgsql/src/pl_scanner.c",
]
PG_CODES_REGEX = "PG_KEYWORD\(\"([a-z]*)\"[A-Z_, ]*\)"
PG_CODES_REGEX = r"PG_KEYWORD\(\"([a-z]*)\"[A-Z_, ]*\)"
PG_SQL_DOCS_URL = \
"https://www.postgresql.org/docs/current/sql-keywords-appendix.html"

View File

@ -100,7 +100,7 @@ class DomainReverseEngineeredSQLTestCase(BaseTestGenerator):
orig_sql = json.loads(get_response.data.decode('utf-8'))
# Replace multiple spaces with one space and check the expected sql
sql = re.sub('\s+', ' ', orig_sql).strip()
sql = re.sub(r'\s+', ' ', orig_sql).strip()
expected_sql = '-- DOMAIN: {0}.{1} -- DROP DOMAIN IF EXISTS ' \
'{0}.{1}; CREATE DOMAIN {0}.{1} {2} ' \
'ALTER DOMAIN {0}.{1} OWNER' \

View File

@ -60,7 +60,7 @@ class ProcedureExecSQLTestCase(BaseTestGenerator):
exec_sql = json.loads(exec_response.data.decode('utf-8'))
# Replace multiple spaces with one space and check the expected sql
sql = re.sub('\s+', ' ', exec_sql).strip()
sql = re.sub(r'\s+', ' ', exec_sql).strip()
# Verify the expected EXEC SQL
if self.server_type == "pg":

View File

@ -582,7 +582,7 @@ class EdbFuncView(PGChildNodeView, DataTypeReader):
if sql is None:
return None
start = 0
start_position = re.search("\s+[is|as]+\s+", sql, flags=re.I)
start_position = re.search(r"\s+[is|as]+\s+", sql, flags=re.I)
if start_position:
start = start_position.start() + 4

View File

@ -11,7 +11,11 @@ import os
import select
import struct
import config
import subprocess
import sys
if sys.version_info >= (3, 12):
import subprocess
else:
from eventlet.green import subprocess
import re
from sys import platform as _platform
from config import PG_DEFAULT_DRIVER
@ -391,8 +395,8 @@ def enter_key_press(data):
"""
user_input = data['input']
if user_input == '\q' or user_input == 'q\\q' or user_input in\
['\quit', 'exit', 'exit;']:
if user_input == r'\q' or user_input == 'q\\q' or user_input in\
[r'\quit', 'exit', 'exit;']:
# If user enter \q to terminate the PSQL, emit the msg to
# notify user connection is terminated.
sio.emit('pty-output',
@ -553,7 +557,7 @@ def disconnect_socket():
process.terminate()
del app.config['sessions'][request.sid]
else:
os.write(app.config['sessions'][request.sid], '\q\n'.encode())
os.write(app.config['sessions'][request.sid], r'\q\n'.encode())
sio.sleep(1)
os.close(app.config['sessions'][request.sid])
os.close(cdata[request.sid])

View File

@ -32,7 +32,7 @@ class TestSQLASCIIEncoding(BaseTestGenerator):
table_name='test_sql_ascii',
db_encoding='SQL_ASCII',
lc_collate='C',
test_str='\\\\Four\\\Three\\Two\One'
test_str=r'\\\\Four\\\Three\\Two\One'
)),
(
'Test SQL_ASCII data with file path',
@ -40,7 +40,7 @@ class TestSQLASCIIEncoding(BaseTestGenerator):
table_name='test_sql_ascii',
db_encoding='SQL_ASCII',
lc_collate='C',
test_str='\\test\Documents\2017\12\19\AD93E646-'
test_str=r'\\test\Documents\2017\12\19\AD93E646-'
'E5FE-11E7-85AE-EB2E217F96F0.tif'
)),
(

View File

@ -765,7 +765,7 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator):
password = ''
for line in resp_sql.split('\n'):
if 'PASSWORD' in line:
found = re.search("'([\w\W]*)'", line)
found = re.search(r"'([\w\W]*)'", line)
if found:
password = found.groups(0)[0]
break