Vu :
Le recours en matière de droit public formé par A._ contre un arrêt rendu le 7 juin 2021 par lequel le Tribunal administratif fédéral (TAF) a rejeté son recours contre une décision de l'Administration fédérale des douanes (AFD) concernant un refus d'accès au dossier d'une procédure pénale administrative;
le délai accordé au 13 septembre 2021 au TAF et à l'AFD pour déposer leur réponse éventuelle, le TAF ayant déjà fait savoir, le 22 juillet 2021, qu'il se référait à son arrêt, sans autres observations;
la lettre de la recourante du 28 juillet 2021 par laquelle celle-ci déclare retirer son recours.

Considérant :
qu'il y a lieu de prendre acte du retrait du recours et de rayer la cause du rôle en application des art. 32 al. 2 et 71 LTF, en relation avec l'<ref-law>;
que celui qui retire un recours doit, en principe, être considéré comme une partie succombante, astreinte au paiement des frais de justice encourus jusque-là, en application de la règle générale de l'<ref-law>;
qu'au vu des mesures d'instruction auxquelles il a été procédé, les frais judiciaires seront fixés à 500 fr. (art. 65 et 66 al. 1 et 5 LTF);
que conformément à l'<ref-law>, il n'y a pas lieu d'allouer de dépens.

Par ces motifs, le Juge présidant ordonne :
1.
La cause 1C_429/2021 est rayée du rôle par suite de retrait du recours.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de la recourante. Il n'est pas alloué de dépens.
3.
La présente ordonnance est communiquée au mandataire de la recourante, à l'Administration fédérale des douanes, au Tribunal administratif fédéral, Cour I, et au Département fédéral des finances (DFF).
Lausanne, le 2 août 2021
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge présidant : Chaix
Le Greffier : Kurz