ea7173bd838a0f4795a1222eb5b49c85defbc4cf
max
Mon Jul 3 05:13:11 2023 -0700
the proper fix for hgGeneGraph unicode problems, taking back some of the earlier changes, refs #31563
diff --git src/hg/hgGeneGraph/hgGeneGraph src/hg/hgGeneGraph/hgGeneGraph
index 2fdac98..34adb6a 100755
--- src/hg/hgGeneGraph/hgGeneGraph
+++ src/hg/hgGeneGraph/hgGeneGraph
@@ -19,51 +19,54 @@
# dark blue, dashed = only low-throughput data
# dark blue, thickness = low-throughput data + text
# dark blue + dashed = only pathway data
# code review
# - os.system is not a security risk here, no variables go into the cmd line
# - mysql statements are not escaped, instead all CGI vars are checked for non-alpha letters
# hgFixed tables required for this script: ggLink (main table with gene-gene links),
# ggLinkEvent (details about link), ggEventDb (details about links from databases),
# ggEventText (details about links from text mining), ggDoc (details about documents for ggEventText)
# ggGeneName (symbols), ggGeneClass (HPRD/Panther class)
# these are default python modules on python 2.7, no errors expected here
-import sys, cgi, os, string, urllib.request, urllib.parse, urllib.error, operator, hashlib, codecs
+import sys, cgi, os, string, urllib.request, urllib.parse, urllib.error, operator, hashlib
from sys import exit
from collections import defaultdict, namedtuple
from os.path import *
import cgitb
cgitb.enable()
# import the UCSC-specific library
sys.path.append(join(dirname(__file__), "pyLib"))
try:
from hgLib3 import cgiArgs, cgiSetup, cgiString, printContentType, printMenuBar, \
sqlConnect, sqlQuery, errAbort, cfgOption, runCmd, cgiGetAll, printHgcHeader, \
printHgcSection, getNonce, getCspMetaHeader, jsOnEventById, \
jsInlineFinish, webStartGbNoBanner, htmlPageEnd, hConnectCentral, \
- sqlTableExists, readSmallFile
+ sqlTableExists, readSmallFile, forceUnicode
except:
print("Content-type: text/html\n")
print("Cannot find the directory cgi-bin/pyLib in Apache. This is an installation error.")
print("All all parts of cgi-bin installed? Did you do 'make' in kent/src/hg/pyLib?")
+import hgLib3
+hgLib3.forceUnicode = True
+
import pymysql.cursors
# not using feedback button for now. Fan would have liked it, but not sure how we can write
# to any form of database.
# the list of allowed chars in cgi args: digits, letters and dashes
legalChars = set(string.digits)
legalChars.update(set(string.ascii_letters))
legalChars.update("_-./: ")
# number of genes to show on graph by default
DEFGENECOUNT="25"
# ignore all text mining data with less than X abstracts
MINSUPP=2
@@ -124,44 +127,33 @@
"json" : "application/json",
"sif" : "application/octet-stream"
}
# gbdb file names and descriptions
geneAnnotFiles = [
("none", None, "No Annotation", "Do not annotate color genes on graph by external information"),
("gnf2", "gnf2Avg.tab", "GNF2 Expression", "Gene Expression Atlas 2 average across tissues"),
("drugbank", "drugbank.tab", "DrugBank", "DrugBank. Black = gene is targetable with a drug. Mouse-over shows drug names"),
("cosmic" , "cosmicCensus.tab", "Cancer Gene Census", "COSMIC Cancer Gene Census Tumor Types. Black = gene is in cancer gene census. Mouse-over shows cancer type"),
("tcgaMut" , "tcgaMut.tab", "Pan-Cancer Mutations", "TCGA PanCan12 samples with non-silent mutations - Gene mouse-over shows count")
]
# ==== FUNCTIONS ===
-#
-#
-#
-
-#
-#
-#
-
def printInlineAndStyles():
- #print('')
print('')
-
-
print(("""