1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
U
¡ý°d¤ã@sºdZddlZddlZddlZddlZddlZddlZddlZddlZej    j
  ¡ej j dkr‚ddlmZddlmZddlmZn$ddlmZddlmZddlmZGdd„deƒZdS)    z
    AipBase
éNé)Ú    urlencode)Úquote)Úurlparsec@sœeZdZdZdZdZdZdd„Zdd„Zd    d
„Z    d d „Z
d d„Z d%dd„Z dd„Z dd„Zdd„Zd&dd„Zdd„Zdd„Zd'dd „Zd!d"„Zd(d#d$„ZdS))ÚAipBasez
        AipBase
    z(https://aip.baidubce.com/oauth/2.0/tokenz3https://aip.baidubce.com/rpc/2.0/feedback/v1/reportZbrain_all_scopecCs`| ¡|_| ¡|_| ¡|_i|_d|_t|_d|_d|_    i|_
d|_ |j  ¡|_ d|j _dS)z7
            AipBase(appId, apiKey, secretKey)
        NgN@z4.15.13F)ÚstripZ_appIdÚ_apiKeyÚ
_secretKeyÚ_authObjÚ _isCloudUserÚrequestsÚ_AipBase__clientÚ_AipBase__connectTimeoutÚ_AipBase__socketTimeoutÚ_proxiesÚ_AipBase__versionÚsessionÚsÚ
keep_alive)ÚselfZappIdZapiKeyZ    secretKey©rú?d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\aip/base.pyÚ__init__&s
 
 
 zAipBase.__init__cCs|jS)z
            version
        ©r)rrrrÚ
getVersion8szAipBase.getVersioncCs|d|_dS)z2
            setConnectionTimeoutInMillis
        ç@@N)r©rÚmsrrrÚsetConnectionTimeoutInMillis>sz$AipBase.setConnectionTimeoutInMilliscCs|d|_dS)z.
            setSocketTimeoutInMillis
        rN)rrrrrÚsetSocketTimeoutInMillisEsz AipBase.setSocketTimeoutInMilliscCs
||_dS)z
            proxies
        N)r)rÚproxiesrrrÚ
setProxiesLszAipBase.setProxiesNc
 
Cs&zâ| ||¡}|dkr|WS| ¡}| |¡}| ||||¡}| d|||¡}|jj||||d|j|jf|j    d}| 
|j ¡}|j sØ|  dd¡dkrØ| d¡}| |¡}|jj||||d|j|jf|j    d}| 
|j ¡}| ¡Wn>tjjtjjfk
r }    zdd    d
œWY¢Sd }    ~    XYnX|S) z+
            self._request('', {})
        TÚPOSTF)ÚdataÚparamsÚheadersÚverifyÚtimeoutr Ú
error_codeÚénZSDK108zconnection or read data timeout)r(Ú    error_msgN)Ú    _validateÚ_authÚ
_getParamsÚ_proccessRequestÚ_getAuthHeadersrÚpostrrrÚ_proccessResultÚcontentr Úgetr Úcloser Ú
exceptionsÚ ReadTimeoutÚConnectTimeout)
rÚurlr#r%ÚresultÚauthObjr$ÚresponseÚobjÚerrrÚ_requestSsF 
 þü 
 
 þü  þzAipBase._requestcCsdS)z
            validate
        Tr)rr9r#rrrr,}szAipBase._validatecCsd|d<|j|d<|S)u"
            å‚数处理
        ÚpythonZaipSdkZ
aipVersionr)rr9r$r#r%rrrr/„s
zAipBase._proccessRequestcCs0tjjdkrt |¡piSt | ¡¡p*iSdS)z$
            formate result
        rN)ÚsysÚ version_infoÚmajorÚjsonÚloadsÚdecode)rr3rrrr2Žs zAipBase._proccessResultFcCs¤|jr |jS|sJ|j dd¡t|j dd¡ƒd}|tt ¡ƒkrJ|jS|jj|jdd|j|jdœ|j    |j
f|j d  ¡}|  |¡ |_tt ¡ƒ|d<||_|S)    z%
            api access auth
        ÚtimerZ
expires_inéFZclient_credentials)Z
grant_typeZ    client_idZ client_secret)r&r$r'r )r r
r4ÚintrGr Ú_AipBase__accessTokenUrlrr    rrrrDÚ _isPermission)rZrefreshÚtmr=rrrr-˜s($ ýþù
z AipBase._authcCs| dd¡}|j| d¡kS)z.
            check whether permission
        Zscoper)ú )r4Ú_AipBase__scopeÚsplit)rr;ZscopesrrrrK´s zAipBase._isPermissioncCsi}|jdkr|d|d<|S)z1
            api request http url params
        FZ access_token)r )rr;r$rrrr.½s
 zAipBase._getParamsc    Cs€|pi}|pi}|jdkr|St|ƒ}|j ¡ d¡D]}|r6| d¡\}}|||<q6tj ¡ d¡}    |j|d<|    |d<d\}
} d|
|j    |    | f} t
  |j   d    ¡|   d    ¡tj¡ ¡} t|jƒ}g}| ¡D]2\}} | d
t| ¡d ƒ ¡t|  ¡d ƒf¡qÊd  t|ƒ¡}d | ¡|d tt|ƒ d¡ƒ¡|f}t
  |   d    ¡|  d    ¡tj¡ ¡}d|
|j    |    | d | ¡¡ ¡|f|d<|S)z.
            api request http headers
        Fú&ú=z%Y-%m-%dT%H:%M:%SZÚHostz
x-bce-date)Ú1Z1800zbce-auth-v%s/%s/%s/%szutf-8z%s:%sr)Ú
z %s
%s
%s
%szbce-auth-v%s/%s/%s/%s/%s/%sú;Ú authorization)r rÚqueryrrOÚdatetimeÚutcnowÚstrftimeÚhostnamerÚhmacÚnewr    ÚencodeÚhashlibÚsha256Ú    hexdigestrÚpathÚitemsÚappendÚlowerÚjoinÚsortedÚupperrÚkeys)rÚmethodr9r$r%Z    urlResultÚkvÚkÚvÚ    timestampÚversionZexpireÚvalZ
signingKeyZ canonicalUriZcanonicalHeadersÚheaderZcanonicalRequestÚ    signaturerrrr0ÉsZ
 
 
ÿ
 þÿüÿú
    zAipBase._getAuthHeaderscCsi}||d<| |j|¡S)u"
            æ•°æ®åé¦ˆ
        Úfeedback)r?Ú_AipBase__reportUrl)rrsr#rrrÚreportszAipBase.reportcCs| |||¡S)z'
            self.post('', {})
        )r?)rr9r#r%rrrr1sz AipBase.post)N)F)NN)N)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rJrtrNrrrrr!r?r,r/r2r-rKr.r0rur1rrrrrs&
*
 
 
    
E
r)ryr\rDr_rXÚbase64rGrAr ÚpackagesÚurllib3Údisable_warningsrBrCÚurllibrrrÚ urllib.parseÚobjectrrrrrÚ<module>s"